我有一个使用Eclipse构建的Java应用程序,它使用QTJambi。从命令行运行应用程序完美地工作。问题在Mac OS X上使用web start启动QT Jambi
java -d32 -XstartOnFirstThread -jar MyApplication.jar someArg
但是,尝试使用WebStart部署应用程序非常困难。我已经做了大量的阅读,似乎很多人有问题让这个在Mac OS X上工作。这个问题似乎是本机库没有正确加载。堆栈跟踪如下所示。
CWindow's _nativeHide encountered error: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.javaws.Launcher.invokeMainMethod(Launcher.java:1819) Caused by: java.lang.ExceptionInInitializerError at com.trolltech.qt.QtJambiObject.(QtJambiObject.java:60) at com.engage.agentdesktop.Application.main(Application.java:25) ... 5 more Caused by: java.lang.RuntimeException: Loading library failed, progress so far: No 'qtjambi-deployment.xml' found in classpath, loading libraries via 'java.library.path' Loading library: 'libQtCore.4.dylib'... - using 'java.library.path' at com.trolltech.qt.internal.NativeLibraryManager.loadNativeLibrary(NativeLibraryManager.java:431) at com.trolltech.qt.internal.NativeLibraryManager.loadQtLibrary(NativeLibraryManager.java:355) at com.trolltech.qt.Utilities.loadQtLibrary(Utilities.java:140) at com.trolltech.qt.Utilities.loadQtLibrary(Utilities.java:136) at com.trolltech.qt.QtJambi_LibraryInitializer.(QtJambi_LibraryInitializer.java:56) ... 7 more Caused by: java.lang.RuntimeException: Library 'libQtCore.4.dylib' was not found in 'java.library.path'=/Users/smeatonj/Desktop/Engage Agent Desktop.app/Contents/Resources/Java:/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Resources:.:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java at com.trolltech.qt.internal.NativeLibraryManager.loadLibrary_helper(NativeLibraryManager.java:486) at com.trolltech.qt.internal.NativeLibraryManager.loadNativeLibrary(NativeLibraryManager.java:426) ... 11 more
这是webstart.jnlp文件的摘录:
`[resources`] `[j2se version="1.5+"/`] `[jar href="${MEDIA_URL}application/webstart/MyApplication.jar" /`] .... `[jar href="${MEDIA_URL}application/webstart/MyApplication_lib/qtjambi-4.5.2_01.jar" /`] `[resources os="Mac OS X"`] `[j2se version="1.5+" java-vm-args="-d32 -XstartOnFirstThread"/`] `[jar href="${MEDIA_URL}application/webstart/MyApplication_lib/qtjambi-macosx-gcc-4.5.2_01.jar" /`] `[/resources`]
错误告诉我,qtjambi-deployment.xml中没有在classpath中找到。我打开了qtjambi-macosx-gcc-4.5.2_01.jar,那里肯定有qtjambi-deployment.xml文件。
资源os =“Max OS X”节点肯定是由JNLP加载的,因为在此之前我收到了不同的错误,要求我将-d32放入vm参数中。有谁知道这可能会导致这个错误?
编辑:
当webstarting到Windows时,应用程序运行良好。