使用清单和音频和图像文件夹(包括外部jar)创建jar文件

时间:2012-06-09 07:06:07

标签: java jar

我正在尝试创建一个jar文件 有以下项目内容

  • 项目
    • user_interface(包含与GUI相关的所有.classes的包文件夹)
    • function_operations(包含与操作相关的所有.classes的包文件夹)
    • 声音(文件夹包含所有声音文件)
    • 图标(包括所有图像和图标)
    • jars(包括所有外部jar文件)
    • manifest.txt(有一行* Main-Class:user_interface.messengerGUI *和两个进入)

我正在使用命令

jar cvfm helloBuddy.jar manifest.txt user_interface/*.class function_operations/*.class icons/ sounds/

它成功创建了jar文件,但在执行

时出现以下错误
  

JAI-MATA-DI-LINUX项目#java -jar helloBuddy.jar异常   线程“main”java.lang.NoClassDefFoundError:   user_interface / messengerGUI引起:   java.lang.ClassNotFoundException:user_interface.messengerGUI at   java.net.URLClassLoader $ 1.run(URLClassLoader.java:217)at   java.security.AccessController.doPrivileged(Native Method)at   java.net.URLClassLoader.findClass(URLClassLoader.java:205)at   java.lang.ClassLoader.loadClass(ClassLoader.java:321)at   sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:294)at at   java.lang.ClassLoader.loadClass(ClassLoader.java:266)找不到   主类:user_interface.messengerGUI。程序将退出。

另一个问题是如何包含外部罐子?

编辑:最终成功形成了jar。使用eclipse我能够创建jar文件。但是当我运行它时会出现以下错误

  

线程“main”中的异常java.lang.NoClassDefFoundError:   org / jivesoftware / smack / ChatManagerListener引起:   抛出java.lang.ClassNotFoundException:   org.jivesoftware.smack.ChatManagerListener at   java.net.URLClassLoader $ 1.run(URLClassLoader.java:217)at   java.security.AccessController.doPrivileged(Native Method)at   java.net.URLClassLoader.findClass(URLClassLoader.java:205)at   java.lang.ClassLoader.loadClass(ClassLoader.java:321)at   sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:294)at at   java.lang.ClassLoader.loadClass(ClassLoader.java:266)找不到   主类:user_interface.messengerGUI。程序将退出。

我在项目中包含了一些外部jar文件。 org / jivesoftware / smack / ChatManagerListener这个类属于smackx.jar文件之一。 所以这个错误是添加到项目的外部jar文件。任何线索如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

除非使用jarclassloader之类的自定义类加载器或使用onejar之类的工具,否则不能嵌套这样的jar文件。

答案 1 :(得分:1)

试试这个,这是在eclipse中创建jar或runnable jar的方法,项目中的所有外部库都将包含在内

File -> Export-> Java ->Runnbale JAR file

Launch configuration : your Class containing the public static void main(String[] args)

Export destination : Target place

Library Handling:

Package required libraries into generated JAR

FINISH