6

我已经使用Pacifist [http://www.charlessoft.com/]在Mac OS X 10.6.8上安装了Java 1.7.0_45 ,但是我无法运行我下载的 jar 文件。jar 文件是一个线程应用程序。

我收到的错误消息是:

java -jar context.jar
2013-10-31 14:14:41.898 java[330:a07] *** NSInvocation: warning: object 0x109356390 of class 'ThreadUtilities' does not implement methodSignatureForSelector: -- trouble ahead
2013-10-31 14:14:41.900 java[330:a07] *** NSInvocation: warning: object 0x109356390 of class 'ThreadUtilities' does not implement doesNotRecognizeSelector: -- abort
Trace/BPT trap

无论如何我可以运行罐子。我已经正确设置了 JAVA_HOME 路径,并且 java -version 显示 1.7.0_45 作为版本。

相同的应用程序可以在 Windows Java 1.7.0_45 和 Linux Java 1.7 上正常工作。

解决方案的网络搜索和给定的关键字返回的结果很少,而且没有任何特定的解决方案。我是 mac 新手,所以我不能完全理解这个问题。

或者,我是否可以像在 Windows 和 Linux 中那样通过提取 Java 内容并更改 JAVA_HOME 来从 Mac 中的文件夹运行 Java。如果这是可能的,那么我应该能够运行我的 JAR。

4

2 回答 2

0

我在通过 jar 文件安装应用程序时遇到了同样的问题,jar 应用程序安装程序未检测到我的 Java,在这里我看到其中一种方法无法访问,可能是同样的问题。但我不太确定。确保你的 JAVA_HOME/jre/lib/ 文件夹中有 rt.jar 如果你没有,那么你需要通过创建符号链接的过程来拥有它。

在下面的命令中,将 your_java_version 替换为符合您要求的正确版本。

sudo mkdir -p /System/Library/Frameworks/JavaVM.framework/Versions/<your_java_version>/Home/jre/lib

进入目录:

cd /System/Library/Frameworks/JavaVM.framework/Versions/<your_java_version>/Home/jre/lib/

创建符号链接:

sudo ln -s ../../../Classes/classes.jar rt.jar

希望这能解决您的问题。

于 2013-12-06T05:47:38.670 回答
0

我在 MacOS 10.6.8 和 JDK 7 上遇到了完全相同的问题。为了运行 jar,我必须使用 1.6.x 的系统 JRE(在我的情况下,我想安装 Squirrel

/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -jar >squirrel-sql-3.6-MACOSX-install.jar

于 2015-01-21T12:14:56.267 回答