2012-06-20 24 views
0

我有一个旧的应用程序使用摆动布局,我必须通过java webstart使它可用。它运行良好,从NetBeans的,但如果我启动使用JWS它,我得到这个错误:jws应用程序无法加载摆动布局

exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/jdesktop/layout/GroupLayout$Group 
    at Gui.Accueil.jMenuItemConsPHActionPerformed(Accueil.java:2331) 
..... 
Caused by: java.lang.ClassNotFoundException: org.jdesktop.layout.GroupLayout$Group 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 41 more 

我试图在JNLP文件中添加摆动布局,但是当我运行它,我得到这个错误:

com.sun.deploy.net.FailedDownloadException: Impossible de charger la ressource : http://my_url:8080/___JWSappclient/___app/test/lib/swing-layout-1.0.4.jar 

这个JNLP:

<jnlp spec="1.0+" codebase="" href=""> 

    <information> 
     <title>test </title> 
      </information> 
    <eligible>True</eligible> 
    <security> 
     <all-permissions/> 
    </security> 
    <resources> 

     <jar href="./lib/swing-layout-1.0.4.jar"/> 
    </resources> 

</jnlp> 

感谢。

首先编辑:

我已删除,并与许多路径尝试,但它几乎同样的错误com.sun.deploy.net.FailedDownloadException: Impossible de charger la ressource : http://url/___JWSappclient/___app/test/lib/swing-layout-1.0.4.jar

我试图改变摆动布局名到sl.jar但它并没有帮助。 我不明白的是为什么jws尝试从服务器下载swing-layout.jar?

+0

重复的[Java的Web开始找不到摆动布局(http://stackoverflow.com/questions/11118903/java-web-start-cant-find-swing-layout) – trashgod

+0

你是否想要导入'javax.swing.GroupLayout',而不是'org.jdesktop.layout.GroupLayout'? – trashgod

+0

我不能改变为标准的Java 6代码,因为我必须支持Java 5. – hunter99

回答

2

元素<eligible>未出现在JNLP File Syntax中,并且您的文件格式不正确,如图所示。在关于此主题的previous question中,您提到需要支持Java 6.要支持Java 5,请在<resources>中指定它。包含org.jdesktop.layout.GroupLayout的JAR显示正确,但路径可疑。尝试是这样的:

<resources> 
    <j2se version="1.5+" /> 
    <jar href="lib/swing-layout-1.0.4.jar"/> 
</resources> 

附录:我不明白为什么JWS试图从服务器下载swing-layout.jar

JNLP客户端通过HTTP从服务器下载所有JAR。每个JAR都必须使用href属性中指定的相对路径访问。尤其是,包含应用程序JAR和JNLP文件的目录还必须包含一个包含布局JAR的lib目录。

 
test/ 
    application.jnlp 
    application.jar 
    lib/ 
     swing-layout-1.0.4.jar 

+0

请先查看编辑。 – hunter99

+0

我将swing-layout的源添加到了项目中。我认为这是使其工作的最佳解决方案。谢谢你的帮助 。 – hunter99

+0

好主意;然后,当您执行“清理和构建项目”时,NetBeans会将所需的JAR放入'dist'&'dist/lib /'中。 – trashgod