Difference between revisions of "Troubleshooting/Applet/ja"

From Jmol
Jump to navigation Jump to search
(ウェブページにおけるJmolオブジェクトのJava実行に関する問題: Removed the original English description.)
m (fixing wrong characters due to change in charset during migration of the wiki; text recovered from the old server)
 
Line 1: Line 1:
 
{{Lang:Troubleshooting/Applet}}
 
{{Lang:Troubleshooting/Applet}}
  
= ウェブページにおけるJmolオブジェクトのJSmol/HTML5(非Java)版実行に関する問題 =
+
= ウェブページにおけるJmolオブジェクトのJSmol/HTML5(非Java)版実行に関する問題 =
  
== バイナリファイル転送の同時実行 ==
+
== バイナリファイル転送の同時実行 ==
  
利用するブラウザの種類によっては、一部のページで以下のような警告が表示されるかも知れません。
+
利用するブラウザの種類によっては、一部のページで以下のような警告が表示されるかも知れません。
 
<pre>JSmolCore.js:
 
<pre>JSmolCore.js:
 
synchronous binary file transfer is requested but not available
 
synchronous binary file transfer is requested but not available
(バイナリファイル転送の同時実行要求がありましたが、その機能は利用できません)
+
(バイナリファイル転送の同時実行要求がありましたが、その機能は利用できません)
 
</pre>
 
</pre>
これは特に害のないものです。無視して頂いてもページは問題なく表示されます。
+
これは特に害のないものです。無視して頂いてもページは問題なく表示されます。
これはページ開発者に対する警告ですが、<code>Jmol._alertNoBinary = false</code>をページコードに記すことにより表示しないようにすることができます。
+
これはページ開発者に対する警告ですが、<code>Jmol._alertNoBinary = false</code>をページコードに記すことにより表示しないようにすることができます。
  
= ウェブページにおけるJmolオブジェクトのJava実行に関する問題 =
+
= ウェブページにおけるJmolオブジェクトのJava実行に関する問題 =
  
== Jmolが表示されない ==
+
== Jmolが表示されない ==
  
まずは待って下さい。Javaを最初に起動する時は時間がかかり、Jmolアップレットをダウンロードしなくてはなりません。だから、しばらくは待って下さい。
+
まずは待って下さい。Javaを最初に起動する時は時間がかかり、Jmolアップレットをダウンロードしなくてはなりません。だから、しばらくは待って下さい。
  
=== JavaセキュリティによりJmolがブロックされる ===
+
=== JavaセキュリティによりJmolがブロックされる ===
ブラウザ内に表示されるアップレットはJavaのセキュリティポリシーによってはブロックされるかも知れません。許可を求めるダイアログが表示された時、許可する指示を出すだけでいい場合もありますが、様々な設定があり解決はより難しいこともあります。
+
ブラウザ内に表示されるアップレットはJavaのセキュリティポリシーによってはブロックされるかも知れません。許可を求めるダイアログが表示された時、許可する指示を出すだけでいい場合もありますが、様々な設定があり解決はより難しいこともあります。
  
解決方法を[http://proteopedia.org/wiki/index.php/Installing_and_enabling_Java Javaのインストールと有効化(Proteopedia wiki)]で見つけることができるでしょう。ここではWindowsおよびMac OS Xの両環境における主な5種類のブラウザについて、順を追って説明されています。
+
解決方法を[http://proteopedia.org/wiki/index.php/Installing_and_enabling_Java Javaのインストールと有効化(Proteopedia wiki)]で見つけることができるでしょう。ここではWindowsおよびMac OS Xの両環境における主な5種類のブラウザについて、順を追って説明されています。
  
一般的な提案として、ブラウザがJmolアップレットをブロックするのであれば[http://java.com/ Oracle]のサイトから最新版のJavaを入手しアップデートするのがいいでしょう。
+
一般的な提案として、ブラウザがJmolアップレットをブロックするのであれば[http://java.com/ Oracle]のサイトから最新版のJavaを入手しアップデートするのがいいでしょう。
  
=== 黄色い四角形にメッセージが記載されている ===
+
=== 黄色い四角形にメッセージが記載されている ===
* 現象:
+
* 現象:
Jmolが表示されるはずの場所に黄色い四角形が表示され、その中にメッセージが記載されている。
+
Jmolが表示されるはずの場所に黄色い四角形が表示され、その中にメッセージが記載されている。
  
* 解決方法:
+
* 解決方法:
メッセージを読んで下さい。Javaがまだインストールされていないか、またはブラウザの設定でJavaが使えないようになっているかのどちらかが考えられます。ブラウザでJavaを使えるよう設定を変更するか、あるいは[http://java.com/ Oracle社のサイト]からJavaを(再)インストールして下さい。
+
メッセージを読んで下さい。Javaがまだインストールされていないか、またはブラウザの設定でJavaが使えないようになっているかのどちらかが考えられます。ブラウザでJavaを使えるよう設定を変更するか、あるいは[http://java.com/ Oracle社のサイト]からJavaを(再)インストールして下さい。
  
もしJavaが既にインストールされていることが確かであれば、ブラウザ(特にWindows環境下でのChrome)とJmolバージョンとの相性問題である可能性があります。
+
もしJavaが既にインストールされていることが確かであれば、ブラウザ(特にWindows環境下でのChrome)とJmolバージョンとの相性問題である可能性があります。
修正するには、[[Jmol Applet/Browser Support|こちらのページ]]で使われているJmolバージョンにアップデートして下さい。
+
修正するには、[[Jmol Applet/Browser Support|こちらのページ]]で使われているJmolバージョンにアップデートして下さい。
  
=== 黒い四角形にエラーメッセージが表示される ===
+
=== 黒い四角形にエラーメッセージが表示される ===
* 現象:
+
* 現象:
Jmolが表示されるべき場所に黒い四角形が表示され、その中に <code>Error. Click to get more information</code>(エラー。詳しくはクリックして下さい)というメッセージが記載されている。クリックすると以下のメッセージが記されたダイアログが開く。
+
Jmolが表示されるべき場所に黒い四角形が表示され、その中に <code>Error. Click to get more information</code>(エラー。詳しくはクリックして下さい)というメッセージが記載されている。クリックすると以下のメッセージが記されたダイアログが開く。
  Application error.(アプリケーションエラー。)
+
  Application error.(アプリケーションエラー。)
  The application could not execute.(アプリケーションを実行できません。)
+
  The application could not execute.(アプリケーションを実行できません。)
  Click on 'Details' for more information.(Detailsをクリックするとより詳しい情報を表示します。)
+
  Click on 'Details' for more information.(Detailsをクリックするとより詳しい情報を表示します。)
  
クリックするとJavaコンソースが開きます。
+
クリックするとJavaコンソースが開きます。
 
  load: class JmolApplet not found.
 
  load: class JmolApplet not found.
 
  java.lang.ClassNotFoundException: JmolApplet
 
  java.lang.ClassNotFoundException: JmolApplet
 
  (etc.)
 
  (etc.)
  
* 解決方法:
+
* 解決方法:
<code>jmolInitialize()</code> の呼び出しコードを書き忘れていないかページのソースコードを確認して下さい。
+
<code>jmolInitialize()</code> の呼び出しコードを書き忘れていないかページのソースコードを確認して下さい。
[http://jmol.sourceforge.net/jslibrary/#jmolInitialize jmolInitialize() と Jmol.js ライブラリの使い方]も参照して下さい。
+
[http://jmol.sourceforge.net/jslibrary/#jmolInitialize jmolInitialize() Jmol.js ライブラリの使い方]も参照して下さい。
  
=== Internet Explorer 9 で Jmolが消える ===
+
=== Internet Explorer 9 で Jmolが消える ===
  
[[Support/Windows#Jmol_pages_in_IE9/ja|サポート/Windows#IE9におけるJmolページについて]]([[Support/Windows#Jmol_pages_in_IE9|英語版]])をご覧下さい。
+
[[Support/Windows#Jmol_pages_in_IE9/ja|サポート/Windows#IE9におけるJmolページについて]][[Support/Windows#Jmol_pages_in_IE9|英語版]])をご覧下さい。
  
== Jmolは表示されますが、構造は表示されません ==
+
== Jmolは表示されますが、構造は表示されません ==
  
まず、構造ファイルのパスが正しく設定されているか確認して下さい(パスはhtmlページからの相対パスにするのがいいでしょう。但し、場合によっては絶対パスでも動作します。)
+
まず、構造ファイルのパスが正しく設定されているか確認して下さい(パスはhtmlページからの相対パスにするのがいいでしょう。但し、場合によっては絶対パスでも動作します。)
  
それでもまだ読み込みに失敗する場合、Javaコンソールを開いて(開き方は[[Troubleshooting/Java_Problems#Java_console|こちら]]をご覧下さい)、エラー内容を確認して下さい。ほとんどの場合、Javaのセキュリティ制限によるものでしょう(以下もお読み下さい)。
+
それでもまだ読み込みに失敗する場合、Javaコンソールを開いて(開き方は[[Troubleshooting/Java_Problems#Java_console|こちら]]をご覧下さい)、エラー内容を確認して下さい。ほとんどの場合、Javaのセキュリティ制限によるものでしょう(以下もお読み下さい)。
  
=== Javaセキュリティに関するエラー ===
+
=== Javaセキュリティに関するエラー ===
  
Javaは、ウェブページがローカルディスクにアクセスできなくするというセキュリティポリシーに基づいてアップレットに制限をかけます。これはJmolアップレットによってファイルを開くのに制限が生じることを意味します。
+
Javaは、ウェブページがローカルディスクにアクセスできなくするというセキュリティポリシーに基づいてアップレットに制限をかけます。これはJmolアップレットによってファイルを開くのに制限が生じることを意味します。
  
この件に関するJavaセキュリティエラーは以下のような書式で表示されます。
+
この件に関するJavaセキュリティエラーは以下のような書式で表示されます。
 
<pre>FileManager opening file:sample.mol
 
<pre>FileManager opening file:sample.mol
 
script ERROR: script ERROR: io error reading file:sample.mol:  
 
script ERROR: script ERROR: io error reading file:sample.mol:  
Line 73: Line 73:
 
</pre>
 
</pre>
  
ルールの概要は以下の通りです。
+
ルールの概要は以下の通りです。
* ローカルディスクにあるウェブページを開いた場合、Jmolアップレットはアップレットの{{file|.jar}}ファイルがあるフォルダと同じフォルダまたはその下位にあるフォルダにあるファイルに限り開く(=構造やスクリプトを読み込む)ことができます。
+
* ローカルディスクにあるウェブページを開いた場合、Jmolアップレットはアップレットの{{file|.jar}}ファイルがあるフォルダと同じフォルダまたはその下位にあるフォルダにあるファイルに限り開く(=構造やスクリプトを読み込む)ことができます。
: 許可されるフォルダ構成と許可されないフォルダ構成について、[[Jmol_Applet_Deployment_Local|こちら]]や[[Jmol_Applet_Deployment_Local#Examples_of_folder_arrangement|こちら]]の例もご覧下さい。
+
: 許可されるフォルダ構成と許可されないフォルダ構成について、[[Jmol_Applet_Deployment_Local|こちら]][[Jmol_Applet_Deployment_Local#Examples_of_folder_arrangement|こちら]]の例もご覧下さい。
  
* ウェブサーバのページである場合、Jmolアップレットは同じサーバ内にあるファイルだけを開くことができます。
+
* ウェブサーバのページである場合、Jmolアップレットは同じサーバ内にあるファイルだけを開くことができます。
:但し、最近のJavaバージョンは同じサーバ内にあるファイルでもアクセスを拒否される場合があります。特にページが読み込まれた後に(ページのコントロールから)実行されるスクリプトについて言えることです。もしこのような現象が起こった時は、次節「アップレットと構造は表示されるが、それ以上操作できない」を参照して下さい。問題解消につながる方法がみつかるかも知れません。
+
:但し、最近のJavaバージョンは同じサーバ内にあるファイルでもアクセスを拒否される場合があります。特にページが読み込まれた後に(ページのコントロールから)実行されるスクリプトについて言えることです。もしこのような現象が起こった時は、次節「アップレットと構造は表示されるが、それ以上操作できない」を参照して下さい。問題解消につながる方法がみつかるかも知れません。
  
* 署名済みアップレットを使うと以上の制限を回避することができます。ユーザは前もって明確な許可を出すことを求められ、許可された後は制限なくファイルにアクセスできるようになります。
+
* 署名済みアップレットを使うと以上の制限を回避することができます。ユーザは前もって明確な許可を出すことを求められ、許可された後は制限なくファイルにアクセスできるようになります。
  
[[Jmol_Applet#Unsigned_vs._Signed_Applet_.26_Data_Access|署名無しアップレットと署名付きアップレットのデータアクセスについて]]も参照下さい。
+
[[Jmol_Applet#Unsigned_vs._Signed_Applet_.26_Data_Access|署名無しアップレットと署名付きアップレットのデータアクセスについて]]も参照下さい。
  
=== Macで構造が読み込まれません ===
+
=== Macで構造が読み込まれません ===
  
Mac環境において、FirefoxあるいはMozilla/Geckoブラウザを使っている場合、ローカルディスクから読み込んだページではJavaセキュリティエラーにより構造の読み込みに失敗します。ローカルページのアップレットを表示する時はMac OS XのSafariを使って下さい。ウェブサイトの場合、Mozillaブラウザでも問題なく動作します。
+
Mac環境において、FirefoxあるいはMozilla/Geckoブラウザを使っている場合、ローカルディスクから読み込んだページではJavaセキュリティエラーにより構造の読み込みに失敗します。ローカルページのアップレットを表示する時はMac OS XのSafariを使って下さい。ウェブサイトの場合、Mozillaブラウザでも問題なく動作します。
:''補足'':MacのMozillaブラウザはJavaScriptを呼び出し、ローカルパスを絶対パスとして処理することが知られています。このため、ローカルのウェブページではJavaセキュリティの例外エラーが発生します。
+
:''補足'':MacのMozillaブラウザはJavaScriptを呼び出し、ローカルパスを絶対パスとして処理することが知られています。このため、ローカルのウェブページではJavaセキュリティの例外エラーが発生します。
  
=== Linuxで構造が読み込まれません ===
+
=== Linuxで構造が読み込まれません ===
  
Debian環境下において、Jmolアプリケーションは問題なく動作しますが、Jmolアップレットでは構造を表示することができません。
+
Debian環境下において、Jmolアプリケーションは問題なく動作しますが、Jmolアップレットでは構造を表示することができません。
  
考えられる解決方法は、{{file|/etc/sysctl.d/bindv6only.conf}}(恐らくDebian環境のみに存在)に<code>net.ipv6.bindv6only=0</code>の記述を追加して再起動することです。
+
考えられる解決方法は、{{file|/etc/sysctl.d/bindv6only.conf}}(恐らくDebian環境のみに存在)に<code>net.ipv6.bindv6only=0</code>の記述を追加して再起動することです。
  
この情報は、Javaのネットワーク関係の問題について記した[http://muzso.hu/2012/01/04/network-connection-problems-in-debian-squeeze-after-the-net.ipv6.bindv6only-change こちらの情報]に基づいています。
+
この情報は、Javaのネットワーク関係の問題について記した[http://muzso.hu/2012/01/04/network-connection-problems-in-debian-squeeze-after-the-net.ipv6.bindv6only-change こちらの情報]に基づいています。
  
== Jmolと構造は表示されますが、それ以上操作できません ==
+
== Jmolと構造は表示されますが、それ以上操作できません ==
現象:
+
現象:
* 最初の構造読み込みは(恐らくスクリプトについても)問題なし
+
* 最初の構造読み込みは(恐らくスクリプトについても)問題なし
* その後ページ上のボタン、リンク、メニューをクリックするなどの動作を行っても構造を操作することはできません。
+
* その後ページ上のボタン、リンク、メニューをクリックするなどの動作を行っても構造を操作することはできません。
* 以下のようなJavaセキュリティエラーが[[Troubleshooting/Java_Problems#Java_console|Javaコンソール]]に表示されます。
+
* 以下のようなJavaセキュリティエラーが[[Troubleshooting/Java_Problems#Java_console|Javaコンソール]]に表示されます。
 
<pre>
 
<pre>
 
FileManager opening http://www.something.com/example.spt
 
FileManager opening http://www.something.com/example.spt
Line 112: Line 112:
 
</pre>
 
</pre>
  
これは最近のJavaバージョンでのみ適用されているJavaセキュリティ制限です。
+
これは最近のJavaバージョンでのみ適用されているJavaセキュリティ制限です。
解決方法の一つは[[Jmol_Applet#Unsigned_vs._Signed_Applet_.26_Data_Access|署名済みアップレット]]を用いることです。
+
解決方法の一つは[[Jmol_Applet#Unsigned_vs._Signed_Applet_.26_Data_Access|署名済みアップレット]]を用いることです。
もう一つは[[Jmol_Applet_Deployment_Local#Activating_UseCommandThread|コマンドスレッドを使うこと]]でしょう。
+
もう一つは[[Jmol_Applet_Deployment_Local#Activating_UseCommandThread|コマンドスレッドを使うこと]]でしょう。
  
== Jmolは表示されますが、その他の問題があります ==
+
== Jmolは表示されますが、その他の問題があります ==
  
=== ポップアップメニューが開かず、サーバエラーが表示されます(Fedora) ===
+
=== ポップアップメニューが開かず、サーバエラーが表示されます(Fedora) ===
 
<!-- reported by Matthew Betts -->
 
<!-- reported by Matthew Betts -->
* 現象:
+
* 現象:
ページが「jmolApplet()」の段階になるといつも、以下の様な大量のエラーがhttpdのログに出力される。
+
ページが「jmolApplet()」の段階になるといつも、以下の様な大量のエラーがhttpdのログに出力される。
 
  File does not exist: /var/www/html/jmol-11.8.25/org
 
  File does not exist: /var/www/html/jmol-11.8.25/org
また、Jmolポップアップメニューが開かず、更なる同様のエラーがサーバログに出力される。
+
また、Jmolポップアップメニューが開かず、更なる同様のエラーがサーバログに出力される。
* 解決方法:
+
* 解決方法:
これはブラウザ依存の問題です(Fedora 11のFirefox 3.5.9)。FirefoxはOpenJDKランタイム環境を使い、IcedTeaプラグインと関連付いています。SunのJavaとそのプラグインをインストールすることで問題は解決します。
+
これはブラウザ依存の問題です(Fedora 11のFirefox 3.5.9)。FirefoxはOpenJDKランタイム環境を使い、IcedTeaプラグインと関連付いています。SunのJavaとそのプラグインをインストールすることで問題は解決します。
: 但し...
+
: 但し...
OpenJDK Java を削除する必要があります。
+
OpenJDK Java を削除する必要があります。
(<code>yum whatprovides java</code> でアンインストールすべきJavaの正確なバージョンが分かります):  
+
(<code>yum whatprovides java</code> でアンインストールすべきJavaの正確なバージョンが分かります):  
 
<pre>> sudo yum remove java-1.6.0-openjdk-plugin-1.6.0.0-36.b18.fc11.i586
 
<pre>> sudo yum remove java-1.6.0-openjdk-plugin-1.6.0.0-36.b18.fc11.i586
 
> sudo yum remove java-1.6.0-openjdk-1.6.0.0-36.b18.fc11.i586
 
> sudo yum remove java-1.6.0-openjdk-1.6.0.0-36.b18.fc11.i586
 
</pre>
 
</pre>
次に新たなプラグインを追加します(リンク元ファイルのファイル名は異なるかも知れません):
+
次に新たなプラグインを追加します(リンク元ファイルのファイル名は異なるかも知れません):
 
<pre>> cd ~/.mozilla
 
<pre>> cd ~/.mozilla
 
> mkdir plugins
 
> mkdir plugins
Line 138: Line 138:
 
> ln -s /usr/java/jdk1.6.0_16/jre/plugin/i386/ns7/libjavaplugin_oji.so
 
> ln -s /usr/java/jdk1.6.0_16/jre/plugin/i386/ns7/libjavaplugin_oji.so
 
</pre>
 
</pre>
更にFirefoxを開き、<code>ツール > アドオン</code> を選択し、Javaプラグインを有効化にします。
+
更にFirefoxを開き、<code>ツール > アドオン</code> を選択し、Javaプラグインを有効化にします。
  
=== ウェブページのコントロールにJmolが反応しない(Mac Safari) ===
+
=== ウェブページのコントロールにJmolが反応しない(Mac Safari) ===
 
<!-- reported Sep.2010 by Jeff Hansen -->
 
<!-- reported Sep.2010 by Jeff Hansen -->
''この現象はMac OS X 10.6.4のSafari 5.0.1で報告されています''
+
''この現象はMac OS X 10.6.4のSafari 5.0.1で報告されています''
* ページは読み込まれますが、アップレットは表示されません(文字通り、メッセージバーにはthe applet bailedと表示される)。
+
* ページは読み込まれますが、アップレットは表示されません(文字通り、メッセージバーにはthe applet bailedと表示される)。
* アップレットは読み込まれますが、アップレットを有効化するためのリンクをクリックしても何も起こらない。更にSafariの場合はクラッシュすることがある。
+
* アップレットは読み込まれますが、アップレットを有効化するためのリンクをクリックしても何も起こらない。更にSafariの場合はクラッシュすることがある。
この問題はSafariの拡張機能'''AdBlock'''によって引き起こされるものです。この拡張機能を無効化することで問題を解消することができます。
+
この問題はSafariの拡張機能'''AdBlock'''によって引き起こされるものです。この拡張機能を無効化することで問題を解消することができます。
  
= Jmolアップレットからの情報取り出し =
+
= Jmolアップレットからの情報取り出し =
''[[Jmol_Applet#Unsigned_vs._Signed_Applet_.26_Data_Access|非署名アップレットはローカルディスクに対し読み書きすることはできない]]ことを忘れないで下さい。''
+
''[[Jmol_Applet#Unsigned_vs._Signed_Applet_.26_Data_Access|非署名アップレットはローカルディスクに対し読み書きすることはできない]]ことを忘れないで下さい。''
そのため、ファイル操作に関する動作は効きません。ディスクに出力することはできず、スクリプトコンソールまたはJavaコンソールにのみ出力することができます。
+
そのため、ファイル操作に関する動作は効きません。ディスクに出力することはできず、スクリプトコンソールまたはJavaコンソールにのみ出力することができます。
  
== スクリプトコンソールからコードをコピーする ==
+
== スクリプトコンソールからコードをコピーする ==
 
Recent versions of Java (at least 1.6.0_25 and later) prevent text output to Jmol Script Console to be copied and then pasted outside Java.
 
Recent versions of Java (at least 1.6.0_25 and later) prevent text output to Jmol Script Console to be copied and then pasted outside Java.
最近のJava(1.6.0_25以降)では、Javaスクリプトコンソールへのテキスト出力をコピーし、Java以外に貼り付けることはできないようになっています。
+
最近のJava(1.6.0_25以降)では、Javaスクリプトコンソールへのテキスト出力をコピーし、Java以外に貼り付けることはできないようになっています。
  
これに関して以下の様な対応ができます:
+
これに関して以下の様な対応ができます:
* 一部のJmolからの出力はJavaコンソールにも出力されます。Javaコンソールの内容であればコピーしてJava以外のアプリケーションに貼り付けることができます。
+
* 一部のJmolからの出力はJavaコンソールにも出力されます。Javaコンソールの内容であればコピーしてJava以外のアプリケーションに貼り付けることができます。
* スクリプトコンソール内のテキストを選択し、コピーするのではなくテキストエディタにドラッグ&amp;ドロップします。
+
* スクリプトコンソール内のテキストを選択し、コピーするのではなくテキストエディタにドラッグ&amp;ドロップします。
  
[[Copying_and_pasting_scripts|スクリプトのコピーと貼り付け]]も参照して下さい。
+
[[Copying_and_pasting_scripts|スクリプトのコピーと貼り付け]]も参照して下さい。

Latest revision as of 20:38, 25 March 2019


Geographylogo.png

Reference: English – Other: 日本語 ·


ウェブページにおけるJmolオブジェクトのJSmol/HTML5(非Java)版実行に関する問題

バイナリファイル転送の同時実行

利用するブラウザの種類によっては、一部のページで以下のような警告が表示されるかも知れません。

JSmolCore.js:
synchronous binary file transfer is requested but not available
(バイナリファイル転送の同時実行要求がありましたが、その機能は利用できません)

これは特に害のないものです。無視して頂いてもページは問題なく表示されます。 これはページ開発者に対する警告ですが、Jmol._alertNoBinary = falseをページコードに記すことにより表示しないようにすることができます。

ウェブページにおけるJmolオブジェクトのJava実行に関する問題

Jmolが表示されない

まずは待って下さい。Javaを最初に起動する時は時間がかかり、Jmolアップレットをダウンロードしなくてはなりません。だから、しばらくは待って下さい。

JavaセキュリティによりJmolがブロックされる

ブラウザ内に表示されるアップレットはJavaのセキュリティポリシーによってはブロックされるかも知れません。許可を求めるダイアログが表示された時、許可する指示を出すだけでいい場合もありますが、様々な設定があり解決はより難しいこともあります。

解決方法をJavaのインストールと有効化(Proteopedia wiki)で見つけることができるでしょう。ここではWindowsおよびMac OS Xの両環境における主な5種類のブラウザについて、順を追って説明されています。

一般的な提案として、ブラウザがJmolアップレットをブロックするのであればOracleのサイトから最新版のJavaを入手しアップデートするのがいいでしょう。

黄色い四角形にメッセージが記載されている

  • 現象:

Jmolが表示されるはずの場所に黄色い四角形が表示され、その中にメッセージが記載されている。

  • 解決方法:

メッセージを読んで下さい。Javaがまだインストールされていないか、またはブラウザの設定でJavaが使えないようになっているかのどちらかが考えられます。ブラウザでJavaを使えるよう設定を変更するか、あるいはOracle社のサイトからJavaを(再)インストールして下さい。

もしJavaが既にインストールされていることが確かであれば、ブラウザ(特にWindows環境下でのChrome)とJmolバージョンとの相性問題である可能性があります。 修正するには、こちらのページで使われているJmolバージョンにアップデートして下さい。

黒い四角形にエラーメッセージが表示される

  • 現象:

Jmolが表示されるべき場所に黒い四角形が表示され、その中に Error. Click to get more information(エラー。詳しくはクリックして下さい)というメッセージが記載されている。クリックすると以下のメッセージが記されたダイアログが開く。

Application error.(アプリケーションエラー。)
The application could not execute.(アプリケーションを実行できません。)
Click on 'Details' for more information.(Detailsをクリックするとより詳しい情報を表示します。)

クリックするとJavaコンソースが開きます。

load: class JmolApplet not found.
java.lang.ClassNotFoundException: JmolApplet
(etc.)
  • 解決方法:

jmolInitialize() の呼び出しコードを書き忘れていないかページのソースコードを確認して下さい。 jmolInitialize() と Jmol.js ライブラリの使い方も参照して下さい。

Internet Explorer 9 で Jmolが消える

サポート/Windows#IE9におけるJmolページについて英語版)をご覧下さい。

Jmolは表示されますが、構造は表示されません

まず、構造ファイルのパスが正しく設定されているか確認して下さい(パスはhtmlページからの相対パスにするのがいいでしょう。但し、場合によっては絶対パスでも動作します。)

それでもまだ読み込みに失敗する場合、Javaコンソールを開いて(開き方はこちらをご覧下さい)、エラー内容を確認して下さい。ほとんどの場合、Javaのセキュリティ制限によるものでしょう(以下もお読み下さい)。

Javaセキュリティに関するエラー

Javaは、ウェブページがローカルディスクにアクセスできなくするというセキュリティポリシーに基づいてアップレットに制限をかけます。これはJmolアップレットによってファイルを開くのに制限が生じることを意味します。

この件に関するJavaセキュリティエラーは以下のような書式で表示されます。

FileManager opening file:sample.mol
script ERROR: script ERROR: io error reading file:sample.mol: 
java.security.AccessControlException: 
access denied (java.io.FilePermission sample.mol read)

ルールの概要は以下の通りです。

  • ローカルディスクにあるウェブページを開いた場合、JmolアップレットはアップレットのFile icon.gif.jarファイルがあるフォルダと同じフォルダまたはその下位にあるフォルダにあるファイルに限り開く(=構造やスクリプトを読み込む)ことができます。
許可されるフォルダ構成と許可されないフォルダ構成について、こちらこちらの例もご覧下さい。
  • ウェブサーバのページである場合、Jmolアップレットは同じサーバ内にあるファイルだけを開くことができます。
但し、最近のJavaバージョンは同じサーバ内にあるファイルでもアクセスを拒否される場合があります。特にページが読み込まれた後に(ページのコントロールから)実行されるスクリプトについて言えることです。もしこのような現象が起こった時は、次節「アップレットと構造は表示されるが、それ以上操作できない」を参照して下さい。問題解消につながる方法がみつかるかも知れません。
  • 署名済みアップレットを使うと以上の制限を回避することができます。ユーザは前もって明確な許可を出すことを求められ、許可された後は制限なくファイルにアクセスできるようになります。

署名無しアップレットと署名付きアップレットのデータアクセスについても参照下さい。

Macで構造が読み込まれません

Mac環境において、FirefoxあるいはMozilla/Geckoブラウザを使っている場合、ローカルディスクから読み込んだページではJavaセキュリティエラーにより構造の読み込みに失敗します。ローカルページのアップレットを表示する時はMac OS XのSafariを使って下さい。ウェブサイトの場合、Mozillaブラウザでも問題なく動作します。

補足:MacのMozillaブラウザはJavaScriptを呼び出し、ローカルパスを絶対パスとして処理することが知られています。このため、ローカルのウェブページではJavaセキュリティの例外エラーが発生します。

Linuxで構造が読み込まれません

Debian環境下において、Jmolアプリケーションは問題なく動作しますが、Jmolアップレットでは構造を表示することができません。

考えられる解決方法は、File icon.gif/etc/sysctl.d/bindv6only.conf(恐らくDebian環境のみに存在)にnet.ipv6.bindv6only=0の記述を追加して再起動することです。

この情報は、Javaのネットワーク関係の問題について記したこちらの情報に基づいています。

Jmolと構造は表示されますが、それ以上操作できません

現象:

  • 最初の構造読み込みは(恐らくスクリプトについても)問題なし
  • その後ページ上のボタン、リンク、メニューをクリックするなどの動作を行っても構造を操作することはできません。
  • 以下のようなJavaセキュリティエラーがJavaコンソールに表示されます。
FileManager opening http://www.something.com/example.spt
ERROR in script: io error reading http://www.something.com/example.spt:
java.security.AccessControlException: 
access denied (java.net.SocketPermission 147.156.1.4:443 connect,resolve)
eval ERROR: 
----line 1 command 1:
         script >> "example.spt" <<

これは最近のJavaバージョンでのみ適用されているJavaセキュリティ制限です。 解決方法の一つは署名済みアップレットを用いることです。 もう一つはコマンドスレッドを使うことでしょう。

Jmolは表示されますが、その他の問題があります

ポップアップメニューが開かず、サーバエラーが表示されます(Fedora)

  • 現象:

ページが「jmolApplet()」の段階になるといつも、以下の様な大量のエラーがhttpdのログに出力される。

File does not exist: /var/www/html/jmol-11.8.25/org

また、Jmolポップアップメニューが開かず、更なる同様のエラーがサーバログに出力される。

  • 解決方法:

これはブラウザ依存の問題です(Fedora 11のFirefox 3.5.9)。FirefoxはOpenJDKランタイム環境を使い、IcedTeaプラグインと関連付いています。SunのJavaとそのプラグインをインストールすることで問題は解決します。

但し...

OpenJDK Java を削除する必要があります。 (yum whatprovides java でアンインストールすべきJavaの正確なバージョンが分かります):

> sudo yum remove java-1.6.0-openjdk-plugin-1.6.0.0-36.b18.fc11.i586
> sudo yum remove java-1.6.0-openjdk-1.6.0.0-36.b18.fc11.i586

次に新たなプラグインを追加します(リンク元ファイルのファイル名は異なるかも知れません):

> cd ~/.mozilla
> mkdir plugins
> cd plugins
> ln -s /usr/java/jdk1.6.0_16/jre/plugin/i386/ns7/libjavaplugin_oji.so

更にFirefoxを開き、ツール > アドオン を選択し、Javaプラグインを有効化にします。

ウェブページのコントロールにJmolが反応しない(Mac Safari)

この現象はMac OS X 10.6.4のSafari 5.0.1で報告されています

  • ページは読み込まれますが、アップレットは表示されません(文字通り、メッセージバーにはthe applet bailedと表示される)。
  • アップレットは読み込まれますが、アップレットを有効化するためのリンクをクリックしても何も起こらない。更にSafariの場合はクラッシュすることがある。

この問題はSafariの拡張機能AdBlockによって引き起こされるものです。この拡張機能を無効化することで問題を解消することができます。

Jmolアップレットからの情報取り出し

非署名アップレットはローカルディスクに対し読み書きすることはできないことを忘れないで下さい。 そのため、ファイル操作に関する動作は効きません。ディスクに出力することはできず、スクリプトコンソールまたはJavaコンソールにのみ出力することができます。

スクリプトコンソールからコードをコピーする

Recent versions of Java (at least 1.6.0_25 and later) prevent text output to Jmol Script Console to be copied and then pasted outside Java. 最近のJava(1.6.0_25以降)では、Javaスクリプトコンソールへのテキスト出力をコピーし、Java以外に貼り付けることはできないようになっています。

これに関して以下の様な対応ができます:

  • 一部のJmolからの出力はJavaコンソールにも出力されます。Javaコンソールの内容であればコピーしてJava以外のアプリケーションに貼り付けることができます。
  • スクリプトコンソール内のテキストを選択し、コピーするのではなくテキストエディタにドラッグ&ドロップします。

スクリプトのコピーと貼り付けも参照して下さい。

Contributors

Cudo29, AngelHerraez