我正在开发Mac OS X(10.6.8),并且有一个非常新的Java更新到1.6.0_29。现在,我的一个应用程序经常停止工作(永远不会结束纺车)。开发这个软件的人告诉我他们无法解决这个问题(似乎更多的是在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
有什么想法吗?
答案 0 :(得分:0)
我最近在桌面上的Mountain Lion中失败的Java更新中收到了同样的消息。解决方案是从我的笔记本电脑复制Java运行时jdk实现。但是,我第一次弄错了,弄乱了所有文件的符号链接和权限。
libjli.jnilib
文件(在我的案例中为Libraries/
)应该包含可执行文件。
检查您是否正确复制了旧JDK中的文件并保留了所有系统/用户权限。
我的解决方案是对我的笔记本电脑上的文件进行tar操作,并在桌面上原位解压缩,保留链接和权限。我在sudo下执行此操作以保留root:wheel
所有权。