在Mac OS X Lion中初始化Java VM时出错
我在让我的Java在MacOSXLion上运行时遇到了一个问题。我做了Java升级,完全删除了它。然后我又需要它,我安装了一个7v9.apps,但它不起作用 然后我写了一篇苹果知识库(applekb,knowledgebase)文章,把它恢复到6,但那没有用。我完全卸载了它(现在很多次),并重新安装了7v9,但我无法让我的应用程序正常工作,也无法打开java控制台 有人能帮忙吗?以下是我在控制台上的日志:在Mac OS X Lion中初始化Java VM时出错,java,macos,osx-lion,Java,Macos,Osx Lion,我在让我的Java在MacOSXLion上运行时遇到了一个问题。我做了Java升级,完全删除了它。然后我又需要它,我安装了一个7v9.apps,但它不起作用 然后我写了一篇苹果知识库(applekb,knowledgebase)文章,把它恢复到6,但那没有用。我完全卸载了它(现在很多次),并重新安装了7v9,但我无法让我的应用程序正常工作,也无法打开java控制台 有人能帮忙吗?以下是我在控制台上的日志: 10/31/12 3:01:44.681 PM [0x0-0x6ea6ea].com.ap
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)
[…]/jcontrol:line 116:[:参数太多
[…]/jcontrol:line 120:[:-Xdock:icon=/Library/Internet:应为二进制运算符
该jcontrol
文件中似乎存在语法错误,这是因为一些祖先进程集环境变量\u JCP\u DOCK\u NAME
和\u JCP\u DOCK\u ICON
。env | grep JCP
的输出在这里可能有用。jcontrol
脚本可以通过添加引号来修复在上述行中舍入这些变量:
如果[-z“${u JCP_DOCK_NAME}”;那么
_JCP_DOCK_NAME=-Xdock:NAME=“Java控制面板”
fi
如果[-z“${u JCP_DOCK_ICON}”];则
_JCP_DOCK_ICON=-Xdock:ICON=“/Library/Internet插件/JavaAppletPlugin.plugin/Contents/Resources/Java7VM.icns”
fi
不过,我还不能确定这是否是后续错误消息的原因
初始化VM期间发生错误
java.lang.NullPointerException
位于java.util.Hashtable.put(Hashtable.java:542)
位于java.lang.System.initProperties(本机方法)
位于java.lang.System.initializeSystemClass(System.java:1115)
如果值
参数为null
,则引发空指针异常。了解此参数所指的键可能会很有趣,但Java调试器在调试此参数时可能不会有多大用处。也许您最好使用像“gdb”这样的通用应用程序调试器试图找出与该put
调用中的null
值关联的键
/Library/Internet: binary operator expected
我尝试在OSX上使用时也遇到了类似的错误
我认为问题在于$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
后重新启动应用程序解决了问题。等等,这些十六进制值是内存地址吗?我以为JVM从未给出内存地址?我不知道。这是控制台上的日志。从终端键入“JAVA-version”时会发生什么?(如果安装了Java 7U9,则应获得以下输出“Java版本”1.7.0_09”“检查/Library/Internet plugins/JavaAppletPlugin.plugin/Contents/Home/bin/jcontrol
@第116行中的文件。