【问题标题】:java update crashed application, workaround throws errorjava更新崩溃的应用程序,解决方法引发错误
【发布时间】:2024-01-18 11:26:01
【问题描述】:

我正在使用 Mac OS X (10.6.8) 并且最近对 1.6.0_29 进行了 Java 更新。现在我的一个应用程序经常停止工作(永无止境的纺车)。开发这个软件的人告诉我他们无法解决这个问题(似乎更多的是在 Java 方面,似乎很难重现)并提供了一种解决方法。我把旧的 JDK(备份)复制到应用程序文件夹中,然后我不得不使用 shell 脚本启动应用程序。 但是现在我得到了这个错误:

dyld: Library not loaded: @rpath/libjli.jnilib
  Referenced from: /Applications/app_xyz/jre/bin/java
  Reason: image not found
./start_app_xyz.sh: line 43:  1870 Trace/BPT trap          "$JAVA" $VMARGS -classpath $CLASSPATH org.eclipse.equinox.launcher.Main $APPARGS
/Applications/app_xyz

我不知道这个问题是否能以某种方式解决。如果有人知道解决方案,请告诉我!

更新我的问题:

现在,我用另一台机器上的旧 JDK 替换了一个新的错误消息:

Exception in thread "Thread-1" java.lang.NoClassDefFoundError: for
Caused by: java.lang.ClassNotFoundException: for
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
/Applications/app_xyz

有什么想法吗?

【问题讨论】:

  • 听起来像是一个带有旧的JavaApplicationStub 和/或不兼容的 JNI 库的 SWT 应用程序。
  • 我能做些什么来让它运行吗? (我不是开发人员,所以我无法在应用程序本身进行任何更改......)
  • 我会听从开发人员的意见,但更新存根或libraries 可能会有所帮助。

标签: java osx-snow-leopard


【解决方案1】:

我最近在我的桌面上收到了来自 Mountain Lion 中失败的 Java 更新的相同消息。解决方案是从我的笔记本电脑复制 Java 运行时 jdk 实现。但是,我第一次弄错了,弄乱了所有文件的符号链接和权限。

libjli.jnilib 文件(在我的例子中为 Libraries/)应该包含可执行文件。

检查您是否正确复制了旧 JDK 中的文件并保留了所有系统/用户权限。

我的解决方案是在我的笔记本电脑上解压文件,然后在我的桌面上原位解压,保留链接和权限。我在 sudo 下这样做是为了保留 root:wheel 所有权。

祝你好运。

【讨论】:

    最近更新 更多