我正在尝试创建一个jar文件 有以下项目内容
我正在使用命令
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文件。任何线索如何解决这个问题?
答案 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