<!doctype linuxdoctr system>
<article>

<title>JWS for LinuX
<author>Mike Gaertner <tt/&lt;mg@genyosha.in-chemnitz.de&gt;/
<date>Version 1.2-en 08.09.1996
<trans>西お郁彦 <tt/&lt;nishio@nexus.rim.or.jp&gt;/
<tdate>28 December 1996

<abstract>
この文書では Linux 上で Solaris/intel 用の Java WorkShop (JWS) を使う
方法について説明しています。<newline>
(訳注：この文書は JWS のβ版のインストール
方法について書かれています。製品版の JWS のインストール方法とは手順が
若干異なりますので注意してください。製品版に関しては訳注の形で文書の最
後に簡単に述べています。)
</abstract>
<toc>

<sect> まえがき
<p>
過去数ヵ月の間に，多くの PC 雑誌では Java に関する記事が掲載され，Java 
のアプレットやデモプログラムの入った CD が付録についていました。その 
CD の中のいくつかには "Java Workshop" のβ版が収録されていました。Java 
Workshop (JWS) は (Java で書かれた) Java 開発環境で，エディタ，デバッ
ガ，ポートフォリオ/プロジェクトマネージャを含んでいます。

この文書は，この JWS を Linux にインストールする方法の手引です。CD に
含まれる文書には Win NT，Windows 95，Sun の Solaris Sparc， Solaris
Inter についてのみしか書かれていません。

Linux の場合の文書をネット上で見つけることができなかったので，自分でこ
の mini-HOWTO を書くことにしました。
<p>

<sect> 必要なもの
<p>
Linux での Java に関する一般的な情報や必要となる JDK のインストール方
法については Java-HOWTO を読んでください。この mini-HOWTO では以下の
ものを既に持っているものとします。
<enum>
<item> JDK バージョン 1.0 以上のインストール
<item> X11R6 (XFree86 3.1.2 以上)
<item> JWS の入った CD
</enum>
<p>

<sect> インストール
<p>
まず，JWS をどこにインストールするかを決めなければなりません。JWS は配
布パッケージの一部ではありませんので，"/usr/local"の階層にインストール
するのがよいでしょう。

環境変数 "JWS_HOME" をあなたがインストールに選んだディレクトリを指すよ
うに設定し，それをシェルの起動ファイルに入れます。

例えば， "bash" を使っているならば，起動ファイルは "/etc/profile" や 
"~/.bash_profile" で，必要な項目は次の通りです。
<verb>
export JWS_HOME="/usr/local/JWS"
export JAVA_HOME="/usr/local/lib/java"
</verb>

2番目の項目は java のインストールされているディレクトリを指します。
もしまだ設定されていなければ，これも起動ファイルに追加してください。

大抵の java 関係の CD では JWS は <em/workshop/ という名前のサブディレ
クトリに納められています。SunSolaris/i386 用の JWS である 
<em/inteltar.z/ というファイルを探してください。

このファイルは圧縮されたアーカイブで，次のようにして解凍します。

<verb>
tar  -xvzf inteltar.z  -C ${JWS_HOME}
</verb>

このコマンドを実行すると &dollar;{JWS_HOME} 以下に次のサブディレクトリができ
ます。
<verb>
classes, examples, intel-S2, lib, solaris
</verb>
<p>

以下のコマンドは解凍した JWS から余分なファイルを取り除き，既にインス
トール済の java バイナリへの必要なリンクを作ります。(例えばコマンドラ
イン上でカット&amp;ペーストで)そのまま入力することができます。
<verb>
ln  -s ${JWS_HOME}/classes  ${JAVA_HOME}/lib/classes
rm  ${JWS_HOME}/intel-S2/bin/i386/*
rmdir ${JWS_HOME}/intel-S2/bin/i386
ln -s ${JAVA_HOME}/bin/i586 ${JWS_HOME}/intel-S2/bin/i586
ln -s ${JAVA_HOME}/bin/i486 ${JWS_HOME}/intel-S2/bin/i486
ln -s ${JAVA_HOME}/bin/i386 ${JWS_HOME}/intel-S2/bin/i386
</verb>
<p>
JWS を起動するシェルスクリプトは &dollar;{JWS_HOME}/intel-S2/bin/jws です。
このファイルは大きく変更したので，この mini-HOWTO の最後に添付しておき
ます。

さらに &dollar;{JWS_HOME}/solaris/bin/javac の8行目を次のように変更します。
<verb>
if [ -x ${_SS_JDK_BIN}/bin/`/bin/uname -m`/javac ]
</verb>
<p>

これで終りです。

最後に一つだけヒントを。JWS で新しいプロジェクトを作ったら 
&dollar;{JAVA_HOME}/lib/classes.zip を環境変数 "CLASSPATH" に追加しなければな
りません。
<p>

<sect> 謝辞
<p>
この mini-HOWTO の(英語への)翻訳を行ってくれた
Winfried Truemper <tt/&lt;truemper@ElFi.MI.Uni-Koeln.DE&gt;/ に感謝し
ます。

<sect> 付録
<p>
修正されたシェルスクリプト &dollar;{JWS_HOME}/intel-S2/bin/jws は次の通りです。

<tscreen><verb>
---8&lt;-----8&lt;--- cut here ---8&lt;-----8&lt;----
#!/bin/sh
#
# @(#)jws	1.64 96/05/02
#
# Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
#
# Permission to use, copy, modify, and distribute this software
# and its documentation for NON-COMMERCIAL purposes and without
# fee is hereby granted provided that this copyright notice
# appears in all copies. Please refer to the file "copyright.html"
# for further important copyright and licensing information.
#
# SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
# THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
# TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
# ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
# DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
#

#
# Determine JWS_HOME
#
# edit by Mike Gaertner 06.09.1996 mg@genyosha.in-chemnitz.de
# Set environment-variable "JWS_HOME" and "JAVA_HOME" !
#
_SS_JDK_BIN=${JAVA_HOME}
_SS_JWS_HOME=${JWS_HOME}
#
_SS_JDK_HOME=$_SS_JDK_BIN
#
RUNCLASSPATH="$_SS_JDK_BIN/lib/classes.zip:$_SS_JDK_BIN/lib/classes"
#
NCLASSPATH="$_SS_JDK_BIN/lib/classes"
export LD_LIBRARY_PATH
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$J_HOME/lib/`arch`"


if [ -z "$_SS_JWS_HOME" ] ; then
    _SS_JWS_HOME=`dirname $0`
    _SS_JWS_HOME=`cd $_SS_JWS_HOME/../.. ; pwd`
    echo "_SS_JWS_HOME is set to $_SS_JWS_HOME"
fi

if [ ! -d "$_SS_JWS_HOME" ] ; then
    echo "Invalid _SS_JWS_HOME: $_SS_JWS_HOME" 1>&2
    exit 1
fi

if [ ! -r "$_SS_JWS_HOME/lib/properties" ] ; then
    echo "Invalid _SS_JWS_HOME: $_SS_JWS_HOME/lib/properties" 1>&2
    exit 1
fi

# Since JDK executables are installed into JWS, _SS_JDK_BIN is set to
# JWS/${VARIANT}/bin by default.  It might also point to a build or
# archive area.
if [ ! "${_SS_JDK_BIN}" ]
then
  if [ ${_SS_JDK_HOME} ]
  then
    _SS_JDK_BIN=${_SS_JDK_HOME}
  else
    _SS_JDK_BIN=$_SS_JWS_HOME/${VARIANT}
  fi
else
  # could be either an install JWS dir or JDK bin
  if [ -d ${_SS_JDK_BIN}/build ]
  then
    _SS_JDK_BIN=${_SS_JDK_BIN}/build
  elif [ -d ${_SS_JDK_BIN}/${VARIANT} ]
  then
    _SS_JDK_BIN=${_SS_JDK_BIN}/${VARIANT}
  fi
fi

# needs to be exported, because it is referenced by JWS builder
export  _SS_JDK_BIN

# assert: _SS_JDK_BIN points to the parent of lib
if [ ! -d ${_SS_JDK_BIN}/bin ]
then
  echo " By convention, _SS_JDK_BIN must have a bin subdirectory"
  echo " _SS_JDK_BIN:  ${_SS_JDK_BIN}"
  echo " ${_SS_JDK_BIN}/bin does not exits"
  exit
fi

# Given the root of a JDK tree, set _SS_JDK_HOME to the parent directory
#	of bin,classes and lib
#
# There are three types of JDK directories.
#	* build directories are identical to the JDK directory provide
#		by JavaSoft.  No a stable area.  Iteam members are
#		discouraged from relying on this area.
#	* archive directories simply copy all content from the build
#		directory that is to be shipped to the user.  On win32,
#		redist is moved to bin.
#	* installation directory - Since the contains of the JDK bin
#		directories have been moved to JWS, there is no bin dir
#		in the JDK tree.
#   jsk, 4-15-96

if [ ! "${_SS_JDK_HOME}" ]
then
  _SS_JDK_HOME=$_SS_JWS_HOME/../JDK
else
  if [ -d ${_SS_JDK_HOME}/build  ]
  then
    export _SS_JDK_HOME=${_SS_JDK_HOME}/build
  fi
fi

# assert: _SS_JDK_HOME points to the parent of classes
if [ ! -d ${_SS_JDK_HOME}/lib/classes ]
then
  echo " By convention, _SS_JDK_HOME must have a classes subdirectory"
  echo " _SS_JDK_HOME:  ${_SS_JDK_HOME}"
  echo " ${_SS_JDK_HOME}/lib does not exits"
  exit
fi

# assert: _SS_JDK_HOME points to the parent of lib
if [ ! -d ${_SS_JDK_HOME}/lib ]
then
  echo " By convention, _SS_JDK_HOME must have a lib subdirectory"
  echo " _SS_JDK_HOME:  ${_SS_JDK_HOME}"
  echo " ${_SS_JDK_HOME}/lib does not exits"
  exit
fi

if [ `/bin/uname -m` = "i386" ] ; then
  ARCH='i386'
elif [  `/bin/uname -m` = "i486" ] ; then
  ARCH='i486'
elif [  `/bin/uname -m` = "i586" ] ; then
  ARCH='i586'
fi

#
# Set Paths
#
#
# Create .jws directory
#

# backwards compatibility
if [ -d "$HOME/.jde" ] ; then
    if [ ! -d "$HOME/.jws" ] ; then
        echo "Moving $HOME/.jde to $HOME/.jws"
        mv $HOME/.jde $HOME/.jws
    fi
fi
if [ ! -d "$HOME/.jws" ] ; then
    echo "Creating $HOME/.jws directory"
    mkdir -p $HOME/.jws
fi

#
# Parse arguments
#  the -debug option is assumed to have a value associated with it.
#  transform '-debug <file>' to '-debug -Djws.startup.props=<file>'

prog=java
debug_opts="";
opts="";
while [ $# -ne 0 ]; do
   case "$1" in
    -debug) prog=java_g; debug_opts="-debug"; debug_prop="-Ddebug.browser=yes" ;;
    -*) opts="$opts $1" ;;
    *)  args="$args $1" ;;
   esac
   shift;
done

#
# Select a java interpreter
#

if [ -x "${_SS_JDK_BIN}/bin/$prog" ] ; then
    JAVA="${_SS_JDK_BIN}/bin/$prog"
else
    JAVA=$prog
fi

#
# Add WWW_HOME option
#
if [ ! -z "$WWW_HOME" ] ; then
    opts="$opts -Dwww.home=$WWW_HOME"
fi

JWSLOG=${JWSLOG:-$HOME/.jws/weblog}
export JWSLOG

exec $JAVA $debug_opts -classpath $RUNCLASSPATH \
-Djws.home=$_SS_JWS_HOME -Dhotjava.home=$_SS_JWS_HOME \
-Djws.bin=$JWS_BIN -Djdk.bin=${_SS_JDK_BIN}/bin \
-Djws.ut.user=$USER "-Djws.ut.platform=\"`uname -srm`\"" \
-Djws.build.classes=$NCLASSPATH $debug_prop $opts sun.jws.Main $args

---8&lt;-----8&lt;--- cut here ---8&lt;-----8&lt;----
</verb></tscreen>


<sect> 訳注: 製品版 JWS のインストール
<p>
製品版の JWS のインストールについて簡単に触れておきます。
<enum>
<item>
CD-ROM から jw-intel-S2.tar.Z をインストールディレクトリに展開します。
<verb>
tar -xvzf jw-intel-S2.tar.Z -C /usr/local
</verb>
とすれば /usr/local/JWS ができます。/usr/local/JDK というディレクトリ
もできますが，これは不要なので削除しておきます。
<item>
<url url="http://www.blackdown.org/java-linux/"
    name="http://www.blackdown.org/java-linux/">より JWS/intel-S2/bin/jws 
を置き換えるスクリプト，および class.zip を入手する。
<item>
環境変数 JAVA_HOME を設定していなければ，JWS/intel-S2/bin/jws の 28 行
目の環境変数 J_HOME を自分の環境に合わせて設定する。
<verb>
#
# Determine JWS_HOME
#
J_HOME=/usr/local/java
</verb>
<item>JWS を起動する。
<verb>
% /usr/local/JWS/intel-S2/bin/jws
</verb>
</enum>

</article>
