使用launch4J构建Java exe文件时出现错误:“ AWT-EventQueue-0” java.lang.NoClassDefFoundError:javax / persistence / NoResultException

时间:2019-03-18 11:18:35

标签: java exe launch4j

我正在尝试从我的应用程序生成一个.exe文件。 它可以在Netbeans上正常工作,但无法生成.exe文件。  这是错误:

  

Blockquote

Executing: D:\dev\tools\stock_exchange\stock_exchange\src\App\MarketSimulator.exe
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/persistence/NoResultException
    at org.stock.simulator.view.Home.<init>(Home.java:28)
    at org.stock.simulator.view.Home$11.run(Home.java:822)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javax.persistence.NoResultException
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 16 more

这是我的图书馆结构: enter image description here

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

此错误表示您的.exe找不到该类。
这可能是由于您将项目导出为可运行的JAR的方式。

有两种方法可以导出到可运行的JAR,但您可以例如:

  1. 使用JAR旁边单独文件夹中的库导出项目。
    ->易于替换的库版本,但不是最干净或最可移植的解决方案。由于您始终必须在.exe
  2. 中包含一个单独的文件夹
  3. 使用提取到JAR中的库导出项目。
    ->比1更可移植,但是可以在JAR中创建很多程序包和源代码
  4. 使用JAR中打包的库导出项目
    ->它比1更可移植,并且比2更容易替换库。

由于选项2和3都具有包含在JAR中的必要库,因此我认为您使用的是类似option1的东西。

如果将必要的库添加到与生成的.exe相同的文件夹中,则它应该正确执行。

如果这不能解释您的问题,或者您采用了其他方法,
然后请使用必要的信息更新您的问题,我们将为您提供进一步的帮助。