我有一个使用 Eclipse 构建的 Java 应用程序,它使用 QTJambi。从命令行运行应用程序可以完美运行。
java -d32 -XstartOnFirstThread -jar MyApplication.jar someArg
但是,尝试使用 WebStart 部署应用程序被证明是困难的。我已经阅读了很多资料,似乎很多人在使其在 Mac OS X 上运行时遇到问题。问题似乎是本机库没有正确加载。下面提供了堆栈跟踪。
CWindow 的 _nativeHide 遇到错误:java.lang.reflect.InvocationTargetException 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 com.sun.javaws.Launcher.invokeMainMethod(Launcher.java:1819) 引起:java.lang.ExceptionInInitializerError 在 com.trolltech.qt.QtJambiObject.(QtJambiObject.java:60) 在 com.engage.agentdesktop.Application.main(Application.java:25) ... 5 更多 原因:java.lang.RuntimeException:加载库失败,目前进展: 在类路径中找不到“qtjambi-deployment.xml”,通过“java.library.path”加载库 加载库:'libQtCore.4.dylib'... - 使用'java.library.path' 在 com.trolltech.qt.internal.NativeLibraryManager.loadNativeLibrary(NativeLibraryManager.java:431) 在 com.trolltech.qt.internal.NativeLibraryManager.loadQtLibrary(NativeLibraryManager.java:355) 在 com.trolltech.qt.Utilities.loadQtLibrary(Utilities.java:140) 在 com.trolltech.qt.Utilities.loadQtLibrary(Utilities.java:136) 在 com.trolltech.qt.QtJambi_LibraryInitializer.(QtJambi_LibraryInitializer.java:56) ... 7 更多 引起:java.lang.RuntimeException:在“java.library.path”=/Users/smeatonj/Desktop/Engage Agent Desktop.app/Contents/Resources/Java:/System 中找不到库“libQtCore.4.dylib” /Library/PrivateFrameworks/JavaApplicationLauncher.framework/Resources:.:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java 在 com.trolltech.qt.internal.NativeLibraryManager.loadLibrary_helper(NativeLibraryManager.java:486) 在 com.trolltech.qt.internal.NativeLibraryManager.loadNativeLibrary(NativeLibraryManager.java:426) ... 11 更多
这是 webstart.jnlp 文件的摘录:
`[资源`] `[j2se 版本="1.5+"/`] `[jar href="${MEDIA_URL}application/webstart/MyApplication.jar" /`] …… `[jar href="${MEDIA_URL}application/webstart/MyApplication_lib/qtjambi-4.5.2_01.jar" /`] `[资源 os="Mac OS X"`] `[j2se 版本="1.5+" java-vm-args="-d32 -XstartOnFirstThread"/`] `[jar href="${MEDIA_URL}application/webstart/MyApplication_lib/qtjambi-macosx-gcc-4.5.2_01.jar" /`] `[/资源`]
该错误告诉我在类路径中找不到 qtjambi-deployment.xml。我已经打开了 qtjambi-macosx-gcc-4.5.2_01.jar,那里肯定有 qtjambi-deployment.xml 文件。
资源 os="Max OS X" 节点肯定是由 JNLP 加载的,因为在此之前我收到了不同的错误,需要我将 -d32 放入 vm args。有谁知道到底是什么导致了这个错误?
编辑:
当网络启动到 Windows 时,应用程序运行良好。