我试图从jar文件中创建一个exe。它做得很好,当我运行它时,它会给出一个像这样的记事本错误文件, (当我在netbeans(shift + F6)上运行时,它可以正常工作)
线程中的异常" AWT-EventQueue-0" java.lang.NoClassDefFoundError: org / netbeans / lib / awtextra / AbsoluteLayout at experiments.mp3Player.initComponents(mp3Player.java:115)at experiments.mp3Player。(mp3Player.java:26)at 实验。主要$ 1.run(Main.java:17)at java.awt.event.InvocationEvent.dispatch(未知来源)at java.awt.EventQueue.dispatchEventImpl(未知来源)at java.awt.EventQueue.access $ 500(未知来源)at java.awt.EventQueue $ 3.run(未知来源)at java.awt.EventQueue $ 3.run(未知来源)at java.security.AccessController.doPrivileged(Native Method)at java.security.ProtectionDomain $ 1.doIntersectionPrivilege(未知 来自)java.awt.EventQueue.dispatchEvent(未知来源)at java.awt.EventDispatchThread.pumpOneEventForFilters(未知来源) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 在java.awt.EventDispatchThread.pumpEventsForHierarchy(未知 来自java.awt.EventDispatchThread.pumpEvents(未知来源) at java.awt.EventDispatchThread.pumpEvents(Unknown Source)at java.awt.EventDispatchThread.run(未知来源)引起: 抛出java.lang.ClassNotFoundException: org.netbeans.lib.awtextra.AbsoluteLayout at java.net.URLClassLoader $ 1.run(未知来源)at java.net.URLClassLoader $ 1.run(未知来源)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(未知来源)at java.lang.ClassLoader.loadClass(未知来源)at sun.misc.Launcher $ AppClassLoader.loadClass(未知来源)at java.lang.ClassLoader.loadClass(未知来源)......还有17个*
答案 0 :(得分:1)
在exe4j中,您需要包含应用程序的所有依赖项Jars。当您使用Netbeans表单编辑器及其“默认”布局管理器时,您需要包含它的库Jar,它不是默认JRE的一部分。
浏览到您的项目目录并查看dist\lib
目录。您需要包含
答案 1 :(得分:0)
这是因为您已针对netbeans jar对其进行了编译,但它们并未包含在类路径中。不管怎样,你必须让他们上课。您可以在jar导出中包含这些库,它们应该自动显示,或者您可以在启动exe时编辑它们在类路径中的位置(编辑它的启动脚本)。
我建议使用第一个选项,因为它使您在从系统到系统时更具可移植性。