2012-10-31 50 views
5

我有一个问题让我的Java在Mac OS X Lion上工作。我完成了Java升级,完全删除了它。然后我再次需要它,并且我安装了7v9.apps,但无法正常工作。在Mac OS X Lion中初始化Java VM时出错

然后,我做了苹果知识库(知识库)的文章恢复到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) 
+0

等等,这些十六进制值的内存地址?我以为JVM *从未给出内存地址? – asteri

+0

我不知道。多数民众赞成从控制台的日志.. –

+0

当你从终端键入'java -version'会发生什么? (如果安装了Java 7U9,那么你应该得到如下输出:“java version”1.7.0_09“” – Dinuk

回答

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

它看起来像有在jcontrol文件的语法错误,这表现出来,因为有些祖先进程设置环境变量_JCP_DOCK_NAME_JCP_DOCK_ICONenv | 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.put抛出一个空指针异常,如果value说法是null。知道这指的是什么关键会很有趣,但是在调试这个native code时,Java调试器可能不会有多大用处。也许你最好的选择是使用像“gdb”这样的通用应用程序调试器来试图找出与该put调用中的null值相关联的密钥。

0
/Library/Internet: binary operator expected 

我试图用 Oracle JDeveloper在OS X

我认为这个问题是在$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解决了这一问题之后。