使用数据库将应用程序导出到Netbeans中的可执行jar

时间:2017-12-19 21:34:50

标签: java netbeans eclipselink

我正在使用Apache Derby数据库构建桌面应用程序。当我从Netbeans运行应用程序时,它工作正常,但是当我运行应用程序的可执行jar文件时,我得到一个“java.lang.ExceptionInInitializerError”“引起:java.lang.IllegalStateException:试图在关闭时执行操作EntityManager的“。

通过右键单击Netbeans中的项目并单击“清理并生成”来创建jar文件。

我查看了以下资源,但信息不适用:

这是我第一次使用Derby,所以我可能很遗憾。

堆栈追踪:

java.lang.ExceptionInInitializerError
    at myProject.Main.start(Main.java:70)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(Unknown Source)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(Unknown Source)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source)
    at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
    at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Attempting to execute an operation on a closed EntityManager.
    at org.eclipse.persistence.internal.jpa.EntityManagerImpl.verifyOpenWithSetRollbackOnly(EntityManagerImpl.java:1923)
    at org.eclipse.persistence.internal.jpa.QueryImpl.getSingleResult(QueryImpl.java:508)
    at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getSingleResult(EJBQueryImpl.java:400)
    at graphics.view.Read.<clinit>(Read.java:50)
    ... 10 more

1 个答案:

答案 0 :(得分:0)

事实证明,我在代码中犯了一个(非常)愚蠢的错误。在我在查询中调用getSingleResult()之前,我关闭了在行中进行查询的EntityManager。当我从Netbeans运行它时,我不太清楚为什么程序有效,但问题现在已经解决了。