12. アプレットを使用するには
12.1. はじめに
アプレット(applet)はウェブページにアプリケーションを埋め込むための仕組みです。アプリケーションはサーバ側で用意しているため、原則としてアプリケーションをインストールする必要はありません。ウェブページにアクセスするだけでアプリケーションを利用できるのです。jVもアプレットとしてウェブページに埋め込むことができるアプリケーションの一つです。
但し、アプレットを埋め込んだページを閲覧するには、ウェブページを閲覧する人(ウェブクライアント、このページを見ているあなた)の環境にあらかじめJava実行環境をインストールしておく必要があります。
jVの動作にはJOGL(Java OpenGL)も必要ですが、現在は必要なファイルもjVと一緒に同梱して配布していますので、かつてのように別途JOGL関係のファイルをダウンロードする必要はありません。
また、ラジオボタンなどにコマンド操作(群)をひもづけておき、ボタンをクリックするだけで一定の操作ができるようなウェブサイトを作ることもできます。
その他、jVアプレットでは以下のようなことができます。
- コマンドラインインタフェースを使用するかどうかを指定できます。
- ファイル制御パネルを使用するかどうかを指定できます。
- ポップアップメニューを使用するかどうかを指定できます。
- 同じウェブページではマウスイベントを共有できます。
- アプレットはJavaScriptからのコマンド文字を受け取ることができます。
- アプレットはマウスで指定した原子の情報をJavaScriptに送ることができます。
呼び出す際のクラス名は "org.pdbj.viewer.gui.ViewerApplet" です。
12.2. サーバへのjV配置
jVアプレットを用いたページを提供するには、ウェブサーバにjVを配置しておく必要がありますが、その手順はスタンドアロン版の場合と同じです。
以下に具体例を示します。
- ウェブサーバのOS
- Linux系(CentOS)
- ウェブサイトのドキュメントルートパス
/var/www/html
- ウェブサイトのルートURL
http://www.sample.org/
- jVバイナリのルートパス
/var/www/html/jv
- jVのバージョン
- 4.4.4
# ドキュメントルートに移動 [root@server ~]# cd /var/www/html # ここにjVバイナリを置いて解凍展開 [root@server html]# tar -zxvf jV_4_4_4.tar.gz jV_4_4_4/jv4_4_4.jar jV_4_4_4/jv4_4_4_signed.jar jV_4_4_4/jV_manual.html ... jV_4_4_4/startup_macosx.command jV_4_4_4/startup_windows.bat jV_4_4_4/startup_windows_amd64.bat # (任意)このままではjVを更新する度にパスが変わってしまうので、名称固定のシンボリックリンクを作っておく [root@server html]# mkdir jv [root@server html]# ln -s jV_4_4_4 jv # またはディレクトリ名を変更する [root@server html]# mv jV_4_4_4 jv
12.3. 記述コードの種類について
アプレットを埋め込むためのHTMLコードは以下の通り3種類ありますが、HTML規格に沿ったobject
要素を使って記述することを推奨します[1][2][3]。詳しくはJava プラグインホームページもご参照下さい。
要素名 | 備考 |
---|---|
applet |
様々なブラウザに対応しており記述は容易ですが、HTML4では非推奨とされています。 |
object |
applet の代替として推奨されているタグですが、applet タグに比べて記述が複雑です。
|
embed |
Mozilla系ブラウザで有効ですが、W3Cの規格外のタグです。 |
後述する具体的コード記述方法もobject
要素を使った方法でご紹介します。
12.4. 書式とパラメータ
アプレットを表示するためのhtmlコードはページを閲覧するウェブクライアントの環境(OSやブラウザの種類)によって異なります。以下に指定するパラメータと合わせて説明します。アプレットを表示するためのhtmlコード例は各環境での動作状況ページをご覧下さい。
12.4.1. アプレットコードの基本部分
<!-- applet コードで記述した場合(HTML4で非推奨) --> <applet code="クラス名" archive="jarファイル" width="アプレットの横幅" height="アプレットの高さ"> オプションパラメータ </applet> <!-- object コードで記述した場合(HTML4ではこちらを推奨) --> <object code="java:クラス名" type="application/x-java-applet" codetype="application/java" archive="jarファイル" width="アプレットの横幅" height="アプレットの高さ"> オプションパラメータ </object>
- applet要素 の code="クラス名" 属性
- object要素 の classid="java:クラス名" 属性
- 旧型(Classic)Java Plug-inを使用する環境の場合「org.jdesktop.applet.util.JNLPAppletLauncher」、新型(Next Generation)Java Plug-inを使用する環境の場合「org.pdbj.viewer.gui.ViewerApplet」を指定します。JRE 1.5以前の環境(Mac OS X 10.4以前はJRE 1.6以降が提供されていないため必然的に該当)等では旧型で、それ以外の環境では新型のhtmlコードでアプレットが表示できます。
- object の type="application/x-java-applet"
- object の codetype="application/java"
- object要素で記述する場合にのみ必要な属性です。
- archive="jarファイル"
-
jVアプレット表示に必要となるjV本体、JOGL、アプレットランチャーのjarファイルを指定します。指定するファイルの詳細は以下の通りです。ファイルの指定は完全なURL(同一ウェブサーバ内のファイルを参照する場合、
http://www.sample.org
のようなプロトコル名+完全修飾ドメイン名は省略可能)で行い、複数の指定はコンマで区切ります。サーバへのjV配置で示した事例の場合、指定値は以下のようになります。archive="/jv/jv4_2_signed.jar, /jv/applet-launcher.jar, /jv/gluegen-rt.jar, /jv/lib/jogl.all.jar"
各指定値について以下に説明します。- jV本体
- 画像保存などのウェブクライアント側に変更を加える機能を利用できるようにするには、Java拡張機能を有効にする必要があります。Java拡張機能を利用するには署名されたjarファイル(
jv4_2_signed.jar
)を指定する必要があります。非署名版(jv4_2.jar
)を指定すると、Java拡張機能が利用できなくなります。この事例の場合、指定値は/jv/jv4_2_signed.jar
または/jv/jv4_2.jar
となります - アプレットランチャー関係
-
アプレットランチャーを利用して環境に応じたJOGLを自動ダウンロードする機能も組み込む場合、
applet-launcher.jar
とgluegen-rt.jar
の場所を示すURLも指定します。ウェブサーバ内のURLでも配布元のURLでも構いません。配布元のURLについてはアプレットランチャーについてを参照下さい。 この事例のようにあらかじめウェブサーバ内の/var/www/html/jv
にダウンロードしてそちらを利用する場合、指定する値は以下のようになります。/jv/pplet-launcher.jar
/jv/gluegen-rt.jar
- JOGL
-
jV4.0以前とjV4.1以降では指定するファイル名が異なります。jV4.0以前では
jogl.jar
、jV4.1以降ではjogl.all.jar
を指定します。この事例では/jv/lib/jogl.all.jar
を指定することになります。
- アプレットの横幅
- アプレット領域の横幅を指定します。整数値で指定した場合はピクセル単位での絶対指定、数値の後に"%"を記した場合は親要素の横幅に対する相対指定となります。
- アプレットの高さ
- アプレット領域の高さを指定します。整数値で指定した場合はピクセル単位での絶対指定、数値の後に"%"を記した場合は親要素の高さに対する相対指定となります。
- オプションパラメータ
- 追加で様々な指定を加えることができます。詳細は次項を参照下さい。
12.4.2. オプションパラメータ
param
要素を使って追加の指定を行うことができます。項目指定はname
属性で行い、対応する値はvalue
属性に指定します。指定できる項目は以下の通りです。
name属性値 | 既定値 | 内容 |
---|---|---|
mmcifURL | (なし) |
読み込むmmCIFファイルのURLを指定します。ファイルはコンマで区切って複数個指定することができます[注1][注2]。jVコマンドのload mmcif に相当する動作を行います。
例: |
pdbmlURL | (なし) |
読み込むPDBMLファイルのURLを指定します。ファイルはコンマで区切って複数個指定することができます[注1][注2]。jVコマンドのload pdbml に相当する動作を行います。
例: |
pdbURL | (なし) |
読み込むPDBファイルのURLを指定します。ファイルはコンマで区切って複数個指定することができます[注1][注2]。jVコマンドのload pdb に相当する動作を行います。
例: |
polygonURL | (なし) |
読み込むポリゴンファイルのURLを指定します。ファイルはコンマで区切って複数個指定することができます[注1][注2]。jVコマンドのload polygon に相当する動作を行います。
例: |
animURL | (なし) | 読み込むアニメーションファイルのURLを指定します。ファイルはコンマで区切って複数個指定することができます[注2]。 |
command_area | false |
コマンドラインインタフェースを利用するかどうか(true に設定するとアプレット領域下方にコマンドエリアが表示され、false なら表示されない)。但し、後述の「newt」を有効にする設定を行った場合、当項目の設定値に関わらずコマンドラインインタフェースを利用することはできません(コマンドエリアを表示することはできません)。
例: |
file_control | false | ファイルコントロールパネルを使用するかどうか(true に設定するとアプレット領域右部に操作対象ファイルの選択メニューが表示され、false なら表示されない)。 |
popup_menu | true | 右クリックするによるポップアップメニューの利用を許可するかどうか(true なら利用可能、false なら右クリックしてもポップアップメニューは表示されない)。 |
mouse_send_to | (なし) | マウスイベントによるアプレットの名前属性が共有されます (コンマで区切って複数指定できます)。 |
commands | (なし) | アプレットを開始して最初に実行するコマンド (セミコロンで区切って複数指定できます)。 |
report_picking | false | マウスでクリックした原子に関する情報をJavaScriptに送るかどうか(true または false で指定)。 |
picking_receiver | (なし) | マウスクリックで指定するデータのJavaScript関数名。 |
file_load_message | false | ファイル読み込み中にメッセージダイアログを表示するかどうか(true に設定すれば表示され、false に設定すれば表示されない)。 |
call_on_start | false | アプレット開始時にJavaScript関数を呼び出すかどうか(true または false で指定)。 |
noddraw.check | WindowsでDirectDrowを使わないようにするための設定。trueなら使わない、falseなら使う。 | |
codebase_lookup | ||
jnlpNumExtensions | ||
jnlpExtension1 | ||
java_arguments | ||
progressbar | ロード中にプログレスバーを表示するかどうかの設定。trueなら表示する、falseなら表示しない。 | |
subapplet.classname | ||
subapplet.displayname | ||
noddraw.check.silent | ||
newt | false |
最近のMac環境(OS 10.5以降)ではnewt機能をONにしないとappletを表示することができません。newt機能をONにすればappletは表示されるようになりますが、コマンドエリアを表示することができないという制約があります。newt機能をONにするにはvalue属性値に「true」を指定します。ユーザの環境を判別して動的にnewtをONにするには、CGI等でユーザエージェント情報を判別するか、またはhtmlコード内に以下のようなJavaScriptコードを記述します。
if(navigator.userAgent.indexOf("Mac") != -1 ){ document.write('<param name="newt" value="true"/>'); } |
jnlp_href |
注
- ファイルはgzip圧縮されたものでも扱えます。
- URLは「http://」で始まるもののみ有効です。「ftp://」などはエラーになり「Can't Find PDBML File.」警告ダイアログが表示されます。
12.4.3. アプレットランチャーを使用したコード例
コードの前部は一般的なアプレットランチャーの指定とほぼ同じです。詳しくはアプレットランチャーのウェブサイトをご覧下さい。後方ではjVのパラメータ指定を行っています。コードの記述方法はウェブクライアントのJava環境(Java Runtime Environment)のバージョン等によって異なります。詳しくは下記事例をご覧下さい。下記各例はいずれも必要な各ファイルが html ファイル(あるいはhtmlコードを出力するcgi)と同一ディレクトリにある場合の事例です。必要なファイルが別の場所にある場合は適宜パス指定を追加して記述して下さい。
- Classic Java Plug-in環境(Mac OS X 10.4以前等JRE 1.5以前の環境)用 - applet要素 / object要素
- New Java Plug-in 非Mac環境(JRE 1.6以降の非Mac環境)用 - applet要素 / object要素(IE) / object要素(IE以外)
- New Java Plug-in Mac環境(Mac OS X 10.5 Update 7以降のJRE 1.6以降のMac環境)用 - applet要素 / object要素
注:
- JREのバージョンによってアプレットランチャーがうまく動作しない場合があります。詳しくはトラブルシューティングをご覧下さい。
- 各環境での動作する条件やコードをこちらに掲載しています。合わせてご覧下さい。
ウェブクライアントの環境により適用するhtmlコードを変えるには、cgi等を使いウェブサーバ側で制御する方法と、JavaScriptを用いてウェブクライアント側で制御する方法があります。以下に各コードで記述する事例を示します。
- PHP
- JavaScript
- Classic Java Plug-in環境(Mac OS X 10.4以前等JRE 1.5以前の環境)用 - applet要素による記述
-
<applet name="jVwindow" height="600" width="600" archive="applet-launcher.jar, jogl.jar, gluegen-rt.jar, jv3.jar" code="org.jdesktop.applet.util.JNLPAppletLauncher"> <-- height:アプレットの高さ、width:アプレットの幅 archive:追加ファイルのURL code:アプレットランチャーを指定する固有コード --> <param name="subapplet.classname" value="org.pdbj.viewer.gui.ViewerApplet"/> <!-- jVアプレットのクラス名指定 --> <param name="subapplet.displayname" value="jV applet"/> <param name="noddraw.check" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="noddraw.check.silent" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="progressbar" value="true"/> <!-- ロード中にプログレスバーを表示する --> <param name="jnlpNumExtensions" value="1"/> <param name="jnlpExtension1" value="jogl.jnlp"/> <param name="pdbURL" value=""/> <param name="pdbmlURL" value="http://service.pdbj.org/XML/viewer/148l-noatom.xml.gz"> <param name="polygonURL" value=""/> <param name="commands" value="set picking ident;background black;wireframe off;cartoon;color group"/> </applet>
- Classic Java Plug-in環境(Mac OS X 10.4以前等JRE 1.5以前の環境)用 - object要素による記述
-
<object name="jVwindow" height="600" width="600" classid="java:org.jdesktop.applet.util.JNLPAppletLauncher" type="application/x-java-applet" codetype="application/java" archive="applet-launcher.jar, jogl.jar, gluegen-rt.jar, jv3.jar"> <-- height:アプレットの高さ、width:アプレットの幅 classid:アプレットランチャーを指定する固有コード type,codetype:オブジェクトの種類の示す archive:追加ファイルのURL --> <param name="subapplet.classname" value="org.pdbj.viewer.gui.ViewerApplet"/> <!-- jVアプレットのクラス名指定 --> <param name="subapplet.displayname" value="jV applet"/> <param name="noddraw.check" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="noddraw.check.silent" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="progressbar" value="true"/> <!-- ロード中にプログレスバーを表示する --> <param name="jnlpNumExtensions" value="1"/> <param name="jnlpExtension1" value="jogl.jnlp"/> <param name="pdbURL" value=""/> <param name="pdbmlURL" value="http://service.pdbj.org/XML/viewer/148l-noatom.xml.gz"> <param name="polygonURL" value=""/> <param name="commands" value="set picking ident;background black;wireframe off;cartoon;color group"/> </object>
- New Java Plug-in 非Mac環境(JRE 1.6以降の非Mac環境)用 - applet要素による記述
-
<applet name="jVwindow" height="600" width="600" code="org.pdbj.viewer.gui.ViewerApplet"> <-- height:アプレットの高さ、width:アプレットの幅 code:jVを指定する固有コード --> <param name="jnlp_href" value="http://pdbj.org/jv/jv-applet.jnlp"/> <!-- new Java Plug-in に必要 --> <param name="noddraw.check" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="noddraw.check.silent" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="progressbar" value="true"/> <!-- ロード中にプログレスバーを表示する --> <param name="jnlpNumExtensions" value="1"/> <param name="jnlpExtension1" value="jogl.jnlp"/> <param name="pdbURL" value=""/> <param name="pdbmlURL" value="http://service.pdbj.org/XML/viewer/148l-noatom.xml.gz"> <param name="polygonURL" value=""/> <param name="commands" value="set picking ident;background black;wireframe off;cartoon;color group"/> </applet>
- New Java Plug-in 非Mac環境(JRE 1.6以降の非Mac環境)用 - object要素による記述(Internet Explorerの場合)
-
<object name="jVwindow" height="600" width="600" classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" data="java:org.pdbj.viewer.gui.ViewerApplet"> <-- height:アプレットの高さ、width:アプレットの幅 classid:Java Plug-inであることを示すコード code:jVを指定する固有コード --> <param name="jnlp_href" value="http://pdbj.org/jv/jv-applet.jnlp"/> <!-- new Java Plug-in に必要 --> <param name="noddraw.check" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="noddraw.check.silent" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="progressbar" value="true"/> <!-- ロード中にプログレスバーを表示する --> <param name="jnlpNumExtensions" value="1"/> <param name="jnlpExtension1" value="jogl.jnlp"/> <param name="pdbURL" value=""/> <param name="pdbmlURL" value="http://service.pdbj.org/XML/viewer/148l-noatom.xml.gz"> <param name="polygonURL" value=""/> <param name="commands" value="set picking ident;background black;wireframe off;cartoon;color group"/> </object>
- New Java Plug-in 非Mac環境(JRE 1.6以降の非Mac環境)用 - object要素による記述(Internet Explorer以外)
-
<object name="jVwindow" height="600" width="600" classid="org.pdbj.viewer.gui.ViewerApplet" <-- height:アプレットの高さ、width:アプレットの幅 classid:Java Plug-inであることを示すコード code:jVを指定する固有コード --> <param name="jnlp_href" value="http://pdbj.org/jv/jv-applet.jnlp"/> <!-- new Java Plug-in に必要 --> <param name="noddraw.check" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="noddraw.check.silent" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="progressbar" value="true"/> <!-- ロード中にプログレスバーを表示する --> <param name="jnlpNumExtensions" value="1"/> <param name="jnlpExtension1" value="jogl.jnlp"/> <param name="pdbURL" value=""/> <param name="pdbmlURL" value="http://service.pdbj.org/XML/viewer/148l-noatom.xml.gz"> <param name="polygonURL" value=""/> <param name="commands" value="set picking ident;background black;wireframe off;cartoon;color group"/> </object>
- New Java Plug-in Mac環境(Mac OS X 10.5 Update 7以降のJRE 1.6以降のMac環境)用 - applet要素による記述
-
<applet name="jVwindow" height="600" width="600" code="org.pdbj.viewer.gui.ViewerApplet"> <-- height:アプレットの高さ、width:アプレットの幅 code:jVを指定する固有コード --> <param name="jnlp_href" value="http://pdbj.org/jv/jv-applet.jnlp"/> <!-- new Java Plug-in に必要 --> <param name="noddraw.check" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="noddraw.check.silent" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="progressbar" value="true"/> <!-- ロード中にプログレスバーを表示する --> <param name="jnlpNumExtensions" value="1"/> <param name="jnlpExtension1" value="jogl.jnlp"/> <param name="newt" value="true"/> <!-- 非Mac用との違いはこの1行が追加されているのみ --> <param name="pdbURL" value=""/> <param name="pdbmlURL" value="http://service.pdbj.org/XML/viewer/148l-noatom.xml.gz"> <param name="polygonURL" value=""/> <param name="commands" value="set picking ident;background black;wireframe off;cartoon;color group"/> </applet>
- New Java Plug-in Mac環境(Mac OS X 10.5 Update 7以降のJRE 1.6以降のMac環境)用 - object要素による記述(Internet Explorer以外)
-
<object name="jVwindow" height="600" width="600" classid="org.pdbj.viewer.gui.ViewerApplet" <-- height:アプレットの高さ、width:アプレットの幅 classid:Java Plug-inであることを示すコード code:jVを指定する固有コード --> <param name="jnlp_href" value="http://pdbj.org/jv/jv-applet.jnlp"/> <!-- new Java Plug-in に必要 --> <param name="noddraw.check" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="noddraw.check.silent" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="progressbar" value="true"/> <!-- ロード中にプログレスバーを表示する --> <param name="jnlpNumExtensions" value="1"/> <param name="jnlpExtension1" value="jogl.jnlp"/> <param name="newt" value="true"/> <!-- 非Mac用との違いはこの1行が追加されているのみ --> <param name="pdbURL" value=""/> <param name="pdbmlURL" value="http://service.pdbj.org/XML/viewer/148l-noatom.xml.gz"> <param name="polygonURL" value=""/> <param name="commands" value="set picking ident;background black;wireframe off;cartoon;color group"/> </object>
- JavaScript
-
実装したウェブページ例:例30
<object name="jVwindow" height="600" width="600" classid="org.pdbj.viewer.gui.ViewerApplet" <-- height:アプレットの高さ、width:アプレットの幅 classid:Java Plug-inであることを示すコード code:jVを指定する固有コード --> <param name="jnlp_href" value="http://pdbj.org/jv/jv-applet.jnlp"/> <!-- new Java Plug-in に必要 --> <param name="noddraw.check" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="noddraw.check.silent" value="true"/> <!-- WindowsでDirectDrowを使わないための設定 --> <param name="progressbar" value="true"/> <!-- ロード中にプログレスバーを表示する --> <param name="jnlpNumExtensions" value="1"/> <param name="jnlpExtension1" value="jogl.jnlp"/> <param name="newt" value="true"/> <!-- 非Mac用との違いはこの1行が追加されているのみ --> <param name="pdbURL" value=""/> <param name="pdbmlURL" value="http://service.pdbj.org/XML/viewer/148l-noatom.xml.gz"> <param name="polygonURL" value=""/> <param name="commands" value="set picking ident;background black;wireframe off;cartoon;color group"/> </object>
12.5. JavaScriptからアプレットへの通信
閲覧アプレットクラスには、JavaScript と呼ばれる一般的な方法が利用できます。
void executeCommand(String commands) |
この方法で、アプレットは任意のコマンドを受け取ることができます(セミコロンで区切って複数指定できます)。
void loadPDB(String fileLocation) |
void loadPDBML(String fileLocation) |
void loadPolygon(String fileLocation) |
void loadAnim(String fileLocation) |
この方法で、指定したPDBファイル、PDBMLファイル、ポリゴンファイル、アニメーションファイルがそれぞれ読み込まれます。
void loadPDB(String fileLocation, int fitTo) |
void loadPDBML(String fileLocation, int fitTo) |
void loadPolygon(String fileLocation, int fitTo) |
void loadAnim(String fileLocation, int fitTo) |
この方法で、読み込んだファイルの変化マトリックスを指定したファイルの変化マトリックスにセットします。
12.6. アプレットからJavaScriptへの通信
マウスクリックの結果をJavaScriptに送るには、以下の関数をJavaScript側で定義しておく必要があります。
function receiveMousePick(file, model, chain, res, atom, altloc, resName, atomName, x, y, z) |
なお、この関数名の既定値は「receiveMousePick」ですが、APPLET、OBJECT、EMBEDタグで「picking_receiver」の値を指定して変更することができます。
アプレットパラメータ「call_on_start」で然るべき設定がされていれば、アプレットが開始された時、以下のJavaScript関数が呼び出されます。この時、関数は指定された引数をアプレット名として受け取ります。
function jvOnStart(name) |
更に、'MAYSCRIPT'という新しい属性がアプレット、またはOBJECT/EMBEDタグに必要です (詳しくはJavaプラグインガイドを参照して下さい)。
12.7. Linux環境におけるアプレットの表示
Linux環境下でjV Javaアプレットを表示できるようにする方法について以下に説明します。いずれの場合も、閲覧するウェブクライアントコンピュータにSun (Oracle) Java環境がインストールされている必要があります。
- 1. Sun(Oracle)のJava環境(JRE)をダウンロードする
- 「Linux自己解凍バイナリファイル」をJavaダウンロードページからダウンロードします。JavaとしてOpenJDKが既にインストールされている場合もありますが、その場合SunのJavaもインストールします(OpenJDKと共存していても構わない)。32bit版OSの場合は「Linux(自己解凍ファイル)」、64bit版OSの場合は「Linux x64」をダウンロードします。RHEL、CentOSではRPM版を選択しても構いません。なお「JavaアプレットとJava Web Startを使用する場合は、32ビットバージョンを使用してください。」とダウンロードページに記載されていますが、64bit版でも動作します。
- 2. インストール先ディレクトリに移動してインストール実行
-
- 2a. 非RPM版の場合
-
インストールしたいディレクトリに移動して、ダウンロードしたバイナリを実行します[5]。以下の例は
~/download
へダウンロードした自己解凍バイナリファイルを使って、/usr/lib/jvm
へインストールする場合です。なお、RPM版を使う場合は2bをご覧下さい。[Ubuntu 10.04 LTSの場合] 32bit版OSの場合は「Linux(自己解凍ファイル)」、64bit版OSの場合は「Linux x64」をダウンロード $ ls ~/downloads -rw-r--r-- 1 user user 21630577 2011-08-25 14:23 jre-7u15-linux-i586.tar.gz # 64bit版の場合、ファイル名は「jre-7u15-linux-x64.tar.gz」のようになります $ cd /usr/lib/jvm# インストール先に移動(
/usr/lib/jvm
配下にインストールする場合) $ sudo tar -zxvf ~/downloads/jre-7u15-linux-i586.tar.gz # 展開 $ which java /usr/bin/java $ ls -l /usr/bin/java lrwxrwxrwx 1 root root 22 8月 25 2011 /usr/bin/java -> /etc/alternatives/java $ ls -l /etc/alternatives/java lrwxrwxrwx 1 root root 33 1月 6 2012 /etc/alternatives/java -> /usr/lib/jvm/jre1.6.0_30/bin/java $ sudo ln -sf /usr/lib/jvm/jre1.7.0_15/bin/java /etc/alternatives/java $ ls -l /etc/alternatives/java lrwxrwxrwx 1 root root 33 1月 6 2012 /etc/alternatives/java -> /usr/lib/jvm/jre1.7.0_15/bin/java - 2b. RPM版の場合
-
Fedora系(RHEL、CentOS等)の場合、RPM版を使ってもインストールできます。なおオンラインドキュメントの記述ではカレントディレクトリにインストールされるとありますが[6]、実際には常に
/usr/java
配下にインストールされるようです。ブラウザからRPMをダウンロードし、そのままGUIでインストールを実行しても結構です(管理者権限が必要)。非RPM版バイナリを使ったインストールについては2aをご覧下さい。CentOS 6.0 に JRE 1.6.0_27をインストールする場合 32bit版OSの場合は「Linux RPM(自己解凍ファイル)」、64bit版OSの場合は「Linux x64 RPM」をダウンロード $ pwd /home/user/downloads $ ls -l 合計 20588 -rw-r--r-- 1 user user 21080279 8月 29 10:33 2011 jre-6u27-linux-i586-rpm.bin # 64bit版の場合、ファイル名は「jre-6u27-linux-amd64-rpm.bin」のようになります $ $ chmod +x jre-6u27-linux-i586-rpm.bin # 実行権限付加 $ cd /usr/lib/jvm $ ./jre-6u27-linux-i586-rpm.bin # 実行→rpmパッケージができる Unpacking... Extracting... UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (ZIP-Bugs@lists.wku.edu). inflating: jre-6u27-linux-i586.rpm 準備中... ########################################### [100%] 1:jre ########################################### [100%] Unpacking JAR files... rt.jar... jsse.jar... charsets.jar... localedata.jar... plugin.jar... javaws.jar... deploy.jar... Done. $ ls -l /usr/lib/jvm # ここにインストールしたJREはない 合計 20840 drwxr-xr-x. 3 root root 4096 7月 14 17:24 2011 java-1.5.0-gcj-1.5.0.0 drwxr-xr-x. 3 root root 4096 6月 25 11:31 2011 java-1.6.0-openjdk-1.6.0.0 lrwxrwxrwx. 1 root root 21 8月 25 16:28 2011 jre -> /etc/alternatives/jre lrwxrwxrwx. 1 root root 27 7月 14 17:24 2011 jre-1.5.0 -> /etc/alternatives/jre_1.5.0 lrwxrwxrwx. 1 root root 26 7月 14 17:24 2011 jre-1.5.0-gcj -> java-1.5.0-gcj-1.5.0.0/jre lrwxrwxrwx. 1 root root 27 8月 25 16:28 2011 jre-1.6.0 -> /etc/alternatives/jre_1.6.0 lrwxrwxrwx. 1 root root 26 8月 25 16:28 2011 jre-1.6.0-openjdk -> java-1.6.0-openjdk-1.6.0.0/jre -rw-r--r--. 1 root root 21331915 7月 19 20:07 2011 jre-6u27-linux-i586.rpm lrwxrwxrwx. 1 root root 25 7月 14 17:24 2011 jre-gcj -> /etc/alternatives/jre_gcj lrwxrwxrwx. 1 root root 29 8月 25 16:28 2011 jre-openjdk -> /etc/alternatives/jre_openjdk $ ls -l /usr/java # JREはここにインストールされた 合計 4 lrwxrwxrwx. 1 root root 16 8月 29 10:51 2011 default -> /usr/java/latest drwxrwxrwx. 1 root root 4096 8月 29 10:50 2011 jre1.6.0_27 lrwxrwxrwx. 1 root root 16 8月 29 10:51 2011 latest -> /usr/java/jre1.6.0_27
- 3. ブラウザ別のプラグイン設定
-
- Firefox 1. javaコマンドへのパスを通す
-
javaコマンドへのパスを通します(あるいはパスの通っているディレクトリにjavaコマンドのシンボリックリンクを作成します)。先に別のJava(OpenJDKなど)がインストールされていた場合、そちらがjavaコマンドとして認識され、ここでインストールしたSunのJavaが適用されない場合があります。設定方法の詳細は以下の例をご覧下さい。
[Ubuntu 10.04 LTS で OpenJDKが既にインストールされていた場合] # javaコマンドはOpenJDKの方を指している $ java -version java version "1.6.0_20" OpenJDK Runtime Environment (IcedTea6 1.9.9) (6b20-1.9.9-0ubuntu1~10.04.2) OpenJDK Client VM (build 19.0-b09, mixed mode, sharing) $ which java /usr/bin/java $ ls -l /usr/bin/java lrwxrwxrwx. 1 root root 22 8月 22 17:26 2011 /usr/bin/java -> /etc/alternatives/java $ ls -l /etc/alternatives/java lrwxrwxrwx. 1 root root 35 8月 22 17:26 2011 /etc/alternatives/java -> /usr/lib/jvm/jre-1.5.0-gcj/bin/java $ ls /usr/lib/jvm 合計 4 lrwxrwxrwx 1 root root 14 2011-08-25 13:44 java-1.6.0-openjdk -> java-6-openjdk drwxr-xr-x 5 root root 4096 2011-08-25 13:44 java-6-openjdk # javaコマンドのシンボリックリンク元を変更 $ sudo ln -sf /usr/lib/jvm/jre1.6.0_27/bin/java /etc/alternatives/java # RPMで椅子トールした場合は以下のようになる $ sudo ln -sf /usr/java/jre1.6.0_27/bin/java /etc/alternatives/java $ ls -l /etc/alternatives/java lrwxrwxrwx. 1 root root 33 8月 22 17:34 2011 /etc/alternatives/java -> /usr/lib/jvm/jre1.6.0_27/bin/java # Sub Javaに変更された $ java -version java version "1.6.0_27" Java(TM) SE Runtime Environment (build 1.6.0_27-b07) Java HotSpot(TM) Client VM (build 20.1-b06, mixed mode, sharing) # 64bit版の場合、以下のようになります $ java -version java version "1.6.0_27" Java(TM) SE Runtime Environment (build 1.6.0_27-b07) Java HotSpot(TM) 64-Bit Server VM (build 20.1-b06, mixed mode) [CentOS 6.0の場合] $ java -version # javaコマンドはまだOpenJDKのものを指している java version "1.6.0_17" OpenJDK Runtime Environment (IcedTea6 1.7.5) (rhel-1.31.b17.el6_0-i386) OpenJDK Client VM (build 14.0-b16, mixed mode) $ which java /usr/bin/java $ ls -l /usr/bin/java lrwxrwxrwx. 1 root root 22 8月 25 16:28 2011 /usr/bin/java -> /etc/alternatives/java $ ln -sf /usr/java/latest/bin/java /usr/bin/java # javaコマンドのリンク元をSun Javaのものに置き換え $ ls -l /usr/bin/java lrwxrwxrwx. 1 root root 25 8月 29 11:12 2011 /usr/bin/java -> /usr/java/latest/bin/java $ java -version java version "1.6.0_27" Java(TM) SE Runtime Environment (build 1.6.0_27-b07) Java HotSpot(TM) Client VM (build 20.2-b06, mixed mode, sharing)
- Firefox 2. Firefoxプラグインフォルダにプラグインファイルのシンボリックリンクを作成
-
Firefox 3.6では
/usr/lib/firefox-3.6/plugins
がプラグインを置く場所となっていたようだが、Firefox 10.0.4 (ESR) では/usr/lib/mozilla/plugins
(64bit版では/usr/lib64/mozilla/plugins
?)に置けば動作した。# CentOS 6.0 32bit版 + Firefox 3.6 で /usr/java にSun Javaをインストールした場合 # mkdir /usr/lib/firefox-3.6/plugins # 初期状態ではこのディレクトリは存在しなかったので作る # sudo ln -s /usr/java/jre1.6.0_27/lib/i386/libnpjp2.so /usr/lib/firefox-3.6/plugins # CentOS 6.0 32bit版 + Firefox 3.6 で /usr/lib/jvm にSun Javaをインストールした場合 # mkdir /usr/lib/firefox-3.6/plugins # 初期状態ではこのディレクトリは存在しなかったので作る # sudo ln -s /usr/lib/jvm/jre1.6.0_27/lib/i386/libnpjp2.so /usr/lib/firefox-3.6/plugins # Ubuntu 10.04 LTS 32bit版 + Firefox 3.6 で /usr/lib/jvm にSun Javaをインストールした場合 $ sudo ln -s /usr/lib/jvm/jre1.6.0_27/lib/i386/libnpjp2.so /usr/lib/firefox-addons/plugins /usr/lib/firefox-3.6.20/plugins は /usr/lib/firefox-addons/pluginsのシンボリックリンクになっている # Ubuntu 10.04 LTS 64bit版 + Firefox 3.6 で /usr/lib/jvm にSun Javaをインストールした場合 $ sudo ln -s /usr/lib/jvm/jre1.6.0_27/lib/amd64/libnpjp2.so /usr/lib/firefox-addons/plugins # RHEL 5.7 64bit版 + Firefox 10.0.4 (ESR) で /usr/java にSun Javaをインストールした場合 $ sudo ln -s /usr/java/jre1.7.0_04/lib/amd64/libnpjp2.so /usr/lib64/mozilla/plugins
- Opera. プラグインを検索できるようにする
-
下記いずれかの方法で、プラグインが検索できるようにする。
- Opera A. 既存のプラグイン検索対象ディレクトリにプラグインファイルを配置する
-
Opera 11.60にてデフォルトで設定されているプラグインパスの1つ
/usr/lib/opera/plugins
に Java Plug-in ライブラリ/usr/lib/jvm/jre1.6.0_30/lib/i386/libnpjp2.so
のシンボリックリンクを作る場合。# ln -s /usr/lib/jvm/jre1.6.0_30/lib/i386/libnpjp2.so /usr/lib/opera/plugins/libnpjp2.so
- Opera B. プラグイン検索対象ディレクトリにプラグインファイルがあるディレクトリを追加する
-
既にFirefoxのプラグインが
/usr/lib/firefox-addons/plugins/libnpjp2.so
に設置済みであり、これを検出できるようにする場合。- Opera B-1. 設定ウインドウを開く
-
Opera 11.60 の場合、メニューの[設定(S)]-[設定…(P)](Ctrl+F12)をクリック。
- Opera B-2. プラグインウインドウを開きプラグイン検索対象パスを追加
-
詳細設定タブの[コンテンツ]を選択し[プラグインオプション…]ボタンをクリックして[プラグイン]ウインドウを開く。
次に、[パスの変更…]ボタンをクリックして[プラグインのパス]ウインドウが開く
/usr/lib/firefox-addons/plugins/libnpjp2.so
)を追加。
- Google Chromeの場合
-
mozilla ブラウザプラグインフォルダ
/usr/lib/mozilla/plugins
に Java プラグインファイル(シンボリックリンクで可)を置きます。Firefox のプラグインが置かれる/usr/lib/firefox-addons/plugins
に置いても認識しません。Sun Java が/usr/lib/jvm/jre1.6.0_30
にインストールされている場合、以下のコマンドで設定することができます。# ln -s /usr/lib/jvm/jre1.6.0_30/lib/i386/libnpjp2.so /usr/lib/mozilla/plugins/libnpjp2.so
12.8. 参考文献・サイト
- Using APPLET, OBJECT and EMBED Tags…Java Plugin Guideより
- HTML/XHTMLリファレンス…reflux flow
- HTML 4.01 Specification…W3C Recommendation
- Linux コンピュータ用の Java をダウンロードしてインストールするにはどうすればよいですか?
- Linux (自己解凍) ファイルをインストールするには
- Linux RPM (自己解凍) ファイルをインストールするには
- Linux 上の Opera に Plug-in をインストールする方法
- Ubuntu日本語フォーラム / 10.04でChromium用にJava Runtimeをインストールしたい