【问题标题】:SWT, packaging jarSWT,包装罐
【发布时间】:2011-07-24 15:33:38
【问题描述】:

我为我的 java 应用程序(使用 SWT 构建)制作了简单的 jar。 在 netbeans 中它开始正常,因为它需要。 但是当我用 java -jar [jarName] 启动它时,我有这样的错误:

java -jar jarname.jar 
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Composite
    at roxed.Main.main(Main.java:15)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Composite
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    ... 1 more

我已经从http://eclipse.org/swt (linux build) 下载了 SWT,解压 jar 并将这个文件夹添加到项目中。

有人可以说,为什么我不能从 IDE 中执行它?

【问题讨论】:

    标签: java jar swt executable-jar


    【解决方案1】:

    在类路径中添加 swt jar。具体来说,org.eclipse.swt_x.x.xorg.eclipse.swt.win32.win32.x86_x.x.x。其中 x 是版本号,您必须查找 linux 版本,而不是我显示的 win32。

    【讨论】:

      【解决方案2】:

      更新

      swt.jar 需要添加到 META-INF/MANIFEST.MF 文件的 Class-Path 条目中。

      您可以在link 上阅读有关 Java 启动器选项的更多信息。

      【讨论】:

      • java -cp libraries/swt.jar -jar jarname.jar 产生同样的错误
      • 您可能需要定义 swt.jar 的完整路径,例如 ~/../libraries/swt.jar
      • -1。他询问了一种将库添加到位于 jar 内的类路径的方法
      • @GabrielLlamas - 既然他接受了我的回答,我认为这对他有所帮助。顺便说一句,在接受 17 个月后对一个答案投反对票是一件很酷的事情。
      • 如果答案是错误的,那么它是否在 999 年前被问到也没关系。伯尼回答中的全部细节。
      【解决方案3】:

      找到... 但不完全是。 将项目移植到 Eclipse,添加了所有 jar-s。 并且只是导出为可执行jar。 而且它有效...

      感谢大家的参与。

      【讨论】:

        【解决方案4】:

        确实如此 java -cp libraries/swt.jar -jar jarname.jar 会产生同样的错误。

        这是因为在使用 -jar 时,Java 不使用 -classpath 值

        您必须在 jar 包内的清单将库添加到 Class-Path 部分。

        例如:

        Manifest-Version: 1.0
        Main-Class: irisRecognition
        Class-Path: ../libs/swt64.jar ../libs/bij.jar
        

        您可以在答案here中找到更详细的描述

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-10-10
          • 1970-01-01
          • 2017-08-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-09-29
          • 1970-01-01
          相关资源
          最近更新 更多