Java Web Start – 运行时ClassNotFoundException

我现在正在尝试使用Java Web Start部署Java应用程序。 独立运行时,应用程序运行正常。 我将项目导出为可运行的.jar文件,然后编写相应的jnlp文件。

但是,从jnlp文件运行时,应用程序在启动时会返回以下错误:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: someClass ........ Caused by: java.lang.ClassNotFoundException: someClass ......... 

我使用Eclipse Helios导出了.jar文件,其中包含“将所需库打包到生成的JAR中”选项。

这是我的jnlp文件的样子(我替换了一些信息):

    Whatever Whatever              

另外,我使用WebLogic 10来托管文件,但我怀疑这会有什么不同。

有人可以帮帮我吗?

感谢您的任何投入!

从WebStart开发人员指南 :

必须从JNLP文件的resources部分中指定的JAR文件中检索所有应用程序资源,或者使用对Web服务器的HTTP请求显式检索所有应用程序资源。 建议在JAR文件中存储资源,因为它们将由Java Web Start缓存在本地计算机上。

因此,类加载器机制对于WebStart应用程序是不同的。 我假设它是包装选项“将所需的库打包到生成的JAR中”导致您的案例出现问题。

someClass是否包含在signed.jar文件中包含的jar中? 如果是这样,这将支持这个理论 – 尝试生成单独的jar文件(不要忘记全部签名!)并在部分中将它们作为单独的条目引用。