我有一个使用swing-layout的旧应用程序,我必须通过java webstart使它可用。它从netbeans运行良好但如果我使用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文件中添加swing-layout,但运行时出现此错误:
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
我尝试将swing-layout名称更改为sl.jar,但它没有帮助。 我不明白为什么jws试图从服务器下载swing-layout.jar?
答案 0 :(得分: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。必须使用href
属性中指定的相对路径访问每个JAR。特别是,包含应用程序JAR和JNLP文件的目录还必须具有包含布局JAR的lib
目录。
test/ application.jnlp application.jar lib/ swing-layout-1.0.4.jar