在Mac OS X Lion中初始化Java VM时出错

n_h*_*hov 5 java macos osx-lion

我在使用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)
Run Code Online (Sandbox Code Playgroud)

MvG*_*MvG 0

\n\n

\n
[\xe2\x80\xa6]/jcontrol: line 116: [: too many arguments\n[\xe2\x80\xa6]/jcontrol: line 120: [: -Xdock:icon=/Library/Internet: binary operator expected\n
Run Code Online (Sandbox Code Playgroud)\n
\n\n

看起来该jcontrol文件中存在语法错误,这是因为某些祖先进程设置了环境变量_JCP_DOCK_NAME_JCP_DOCK_ICON. 的输出env | grep JCP在这里可能有用。jcontrol可以通过在上述行中的这些变量周围添加引号来修复该脚本:

\n\n
if [ -z "${_JCP_DOCK_NAME}" ]; then\n    _JCP_DOCK_NAME=-Xdock:name="Java Control Panel"\nfi\n\nif [ -z "${_JCP_DOCK_ICON}" ]; then\n    _JCP_DOCK_ICON=-Xdock:icon="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Resources/Java7VM.icns"\nfi\n
Run Code Online (Sandbox Code Playgroud)\n\n

不过,我还不确定这是否是后续错误消息的原因。

\n\n
\n
Error occurred during initialization of VM\njava.lang.NullPointerException\n    at java.util.Hashtable.put(Hashtable.java:542)\n    at java.lang.System.initProperties(Native Method)\n    at java.lang.System.initializeSystemClass(System.java:1115)\n
Run Code Online (Sandbox Code Playgroud)\n
\n\n

Hashtable.putvalue如果参数为 则抛出空指针异常null知道这个键指的是哪个键会很有趣,但是 Java 调试器在调试这个本机代码时可能没有多大用处。也许您最好的选择是使用通用应用程序调试器(例如“gdb”)来尝试找出与nullput调用中的值关联的键。

\n