5

Java を Mac OS X Lion で動作させるのに問題があります。完全に削除されたJavaアップグレードを行いました。その後、再び必要になり、機能しない 7v9.apps をインストールしました。

その後、Apple KB (ナレッジベース) の記事で 6 に戻しましたが、うまくいきませんでした。完全にアンインストールし (今では何度も)、7v9 を再インストールしましたが、アプリを動作させることも、Java コンソールを開くこともできません。

誰でも助けることができますか?コンソールからのログは次のとおりです。

10/31/12 3:01:44.681 PM [0x0-0x6ea6ea].com.apple.systempreferences: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/jcontrol: line 116: [: too many arguments

10/31/12 3:01:44.681 PM [0x0-0x6ea6ea].com.apple.systempreferences: /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/jcontrol: line 120: [: -Xdock:icon=/Library/Internet: binary operator expected

10/31/12 3:01:44.723 PM [0x0-0x6ea6ea].com.apple.systempreferences: Error occurred during initialization of VM

10/31/12 3:01:44.723 PM [0x0-0x6ea6ea].com.apple.systempreferences: java.lang.NullPointerException

10/31/12 3:01:44.723 PM [0x0-0x6ea6ea].com.apple.systempreferences:     at java.util.Hashtable.put(Hashtable.java:542)

10/31/12 3:01:44.723 PM [0x0-0x6ea6ea].com.apple.systempreferences:     at java.lang.System.initProperties(Native Method)

10/31/12 3:01:44.723 PM [0x0-0x6ea6ea].com.apple.systempreferences:     at java.lang.System.initializeSystemClass(System.java:1115)
4

2 に答える 2

0
[…]/jcontrol: line 116: [: too many arguments
[…]/jcontrol: line 120: [: -Xdock:icon=/Library/Internet: binary operator expected

そのファイルに構文エラーがあったようjcontrolです。これは、一部の祖先プロセスが環境変数_JCP_DOCK_NAME_JCP_DOCK_ICON. の出力はenv | grep JCPここで役立つかもしれません。上記のjcontrol行でこれらの変数の周りに引用符を追加することで、スクリプトを修正できます。

if [ -z "${_JCP_DOCK_NAME}" ]; then
    _JCP_DOCK_NAME=-Xdock:name="Java Control Panel"
fi

if [ -z "${_JCP_DOCK_ICON}" ]; then
    _JCP_DOCK_ICON=-Xdock:icon="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Resources/Java7VM.icns"
fi

ただし、これが後続のエラー メッセージの原因であるかどうかはわかりません。

Error occurred during initialization of VM
java.lang.NullPointerException
    at java.util.Hashtable.put(Hashtable.java:542)
    at java.lang.System.initProperties(Native Method)
    at java.lang.System.initializeSystemClass(System.java:1115)

Hashtable.putvalue引数がの場合、null ポインター例外をスローしますnull。これがどのキーを参照しているかを知ることは興味深いことですが、このネイティブ コードをデバッグする場合、Java デバッガーはおそらくあまり役​​に立ちません。おそらく、「gdb」などの一般的なアプリケーション デバッガーを使用して、その呼び出しのnull値に関連付けられているキーを特定することをお勧めします。put

于 2012-12-11T09:09:48.450 に答える