【发布时间】:2020-11-21 16:22:59
【问题描述】:
有一个用 Kotlin TornadoFX (==java / JavaFX) 编写的应用程序,如果我通过 main 或任何其他类运行它一切正常,dB 连接和查询工作,但如果我收集一个 jar 文件(在我的情况下,我收集了普通jar和shadowjar)并运行它,它给出了一个错误:
java.sql.SQLException: ASSERTION FAILED: Exception java.security.NoSuchAlgorithmException: SHA-256 MessageDigest not available that should not be thrown, was thrown at
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at
com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835) at
com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:455) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(
NonRegisteringDriver.java:199) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at dataBase.DatabaseHandler.getAuth(
DatabaseHandler.kt:128) at LogIn$root$1.invoke(LogIn.kt:18) at LogIn$root$1.invoke(LogIn.kt:12) at tornadofx.LayoutsKt.borderpane(Layouts.kt:465) at LogIn.(LogIn.kt:14) at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at
tornadofx.FXKt.find(FX.kt:432) at tornadofx.FXKt.find$default(FX.kt:406) at tornadofx.App.start(App.kt:81) at Main.start(Main.kt:9) at
com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$8(LauncherImpl.java:863) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$7(PlatformImpl.java:326) at
com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at
com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at
com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$4(WinApplication.java:186) at java.lang.Thread.run(Unknown Source)
在LogIn类中,DB中有一个查询,分别在DatabaseHandler类中,实现了这个查询。
什么情况下会出现这个错误,如何处理?
P.S.:如果你删除对分贝的请求,jar 文件也将启动并工作,错误具体与分贝有关。
【问题讨论】:
标签: java mysql exception connect