5

我在让我的 Java 在 Mac OS X Lion 上运行时遇到问题。我做了 Java 升级,它完全删除了它。然后我再次需要它,我安装了 7v9.apps,但没有用。

然后我写了一篇将它恢复到 6 的 Apple KB(知识库)文章,但这没有用。我完全卸载了它(现在很多次),并重新安装了 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。知道这指的是什么键会很有趣,但是在调试本机代码时,Java 调试器可能没有多大用处。也许您最好的选择是使用像“gdb”这样的通用应用程序调试器来尝试找出与该调用null中的值关联的键。put

于 2012-12-11T09:09:48.450 回答
0
/Library/Internet: binary operator expected

我在 OS X 上尝试使用Oracle JDeveloper时遇到了类似的错误。

我认为问题是$JAVA_HOME环境变量中的空间。我只是做了一个指向 Oracle Java 1.7 位置的符号链接:

>ls -la /usr/local/oraclejava
lrwxr-xr-x  1 root  admin  64 20 Sep 13:33 /usr/local/oraclejava -> /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

$JAVA_HOME设置解决问题后重新启动应用程序/usr/local/oraclejava

于 2013-09-20T17:45:38.930 回答