无法使用 pacifist 在带有 Java 1.7.0.45 的 Mac OS X 10.6.8 上运行线程化的 java jar 文件

Posted

技术标签:

【中文标题】无法使用 pacifist 在带有 Java 1.7.0.45 的 Mac OS X 10.6.8 上运行线程化的 java jar 文件【英文标题】:Unable to run threaded java jar file on Mac OS X 10.6.8 with Java 1.7.0.45 using pacifist 【发布时间】:2013-11-11 23:14:38 【问题描述】:

我使用 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

无论如何我可以运行 jar。我已经正确设置了 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。

【问题讨论】:

【参考方案1】:

我在 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

【讨论】:

【参考方案2】:

我在通过 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

希望这能解决您的问题。

【讨论】:

不幸的是,这并没有为我解决问题。我已经在那个文件夹中有 rt.jar。

以上是关于无法使用 pacifist 在带有 Java 1.7.0.45 的 Mac OS X 10.6.8 上运行线程化的 java jar 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用带有elasticbeanstalk,java的rest服务器和websocket,无法连接

带有日志文件但无法使用 java 程序日志文件执行的 Bat 文件未生成

带有Java的AWS Lambda无法从S3获取文件

带有Java的Postgres我无法插入数据

带有 TLSv1.2 的 Java 7 连接到 LDAPS 握手失败

我无法使用带有 Android Studio 的 JDBC 连接到 SQL Server Express