【问题标题】:jws application can't load swing-layoutjws 应用程序无法加载摆动布局
【发布时间】:2012-06-23 01:01:51
【问题描述】:

我有一个使用 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 ?

【问题讨论】:

  • 您的意思是导入javax.swing.GroupLayout,而不是org.jdesktop.layout.GroupLayout
  • 我不能更改为标准的 java 6 代码,因为我必须支持 java 5。
  • 什么,规格。自昨天以来,在您声明 "andrew> 我必须支持 java 6 。" 的副本上发生了变化?为什么我怀疑你改变那个细节的诚意?明天是1.4吗?
  • 是的,也许。感谢您的大力帮助安德鲁。

标签: java swing jakarta-ee java-web-start


【解决方案1】:

&lt;eligible&gt; 元素没有出现在JNLP File Syntax 中,并且您的文件格式不正确,如图所示。在您关于此主题的previous question 中,您提到需要支持Java 6。要支持Java 5,请在&lt;resources&gt; 中指定它。包含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 目录。

测试/ 应用程序.jnlp 应用程序.jar 库/ swing-layout-1.0.4.jar

【讨论】:

  • 我在项目中添加了swing-layout的源码。我认为这是使其工作的最佳解决方案。感谢您的帮助。
  • 好主意;然后,当您执行 Clean and Build Project 时,NetBeans 会将所需的 JAR 放入 distdist/lib/
猜你喜欢
  • 2014-06-07
  • 1970-01-01
  • 2012-05-03
  • 1970-01-01
  • 2015-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-17
相关资源
最近更新 更多