Java 8 JTDS 1.3与java8 x64的连接问题

Java 8 JTDS 1.3与java8 x64的连接问题,java-8,jtds,Java 8,Jtds,在Windows7上尝试使用JTDS1.3+jdk1.8(64)时,出现以下错误 Exception in thread "main" java.lang.RuntimeException: Error initializing DESEngine at net.sourceforge.jtds.util.DESEngine.init(DESEngine.java:76) at net.sourceforge.jtds.util.DESEngine.<init>(DE

在Windows7上尝试使用JTDS1.3+jdk1.8(64)时,出现以下错误

Exception in thread "main" java.lang.RuntimeException: Error initializing DESEngine
    at net.sourceforge.jtds.util.DESEngine.init(DESEngine.java:76)
    at net.sourceforge.jtds.util.DESEngine.<init>(DESEngine.java:51)
    at net.sourceforge.jtds.jdbc.NtlmAuth.answerLmChallenge(NtlmAuth.java:52)
    at net.sourceforge.jtds.jdbc.TdsCore.sendNtlmChallengeResponse(TdsCore.java:2179)
    at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:613)
    at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:369)
    at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:183)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at test4.Test4.main(Test4.java:15)
Caused by: java.security.NoSuchAlgorithmException: DES SecretKeyFactory not available
    at javax.crypto.SecretKeyFactory.<init>(SecretKeyFactory.java:122)
    at javax.crypto.SecretKeyFactory.getInstance(SecretKeyFactory.java:160)
    at net.sourceforge.jtds.util.DESEngine.init(DESEngine.java:69)
    ... 9 more
Java版本:

C:\Program Files\Java\jdk1.8.0_40\bin>java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
以下是我做的测试:

jtds-1.3(1.3.1)
Windows7 + jdk1.7.79 (32) works
Windows7 + jdk1.7.79 (64) works
Windows7 + jdk1.8.40 (32) works
Windows7 + jdk1.8.40 (64) NOT working
RedHat6.6 + jdk1.7.79 (64) works
RedHat6.6 + jdk1.8.40 (64) works

jtds-1.2.8:
works on any combination of system above.

有关Windows上jtds1.3+java8(64)的任何已知问题?

jtds1.3.1在建立数据库连接时,如果使用java 8运行,则在尝试使用SSL时存在已知错误。这里有记录:
虽然它被标记为已修复,但新版本的代码尚未打包。当我们连接jtds驱动程序时,我们使用URL标志ssl=request,这样,如果服务器支持ssl,我们将建立ssl连接。当我们使用Java8时,我们遇到了数据库连接失败,而这个错误就是原因。您可以签出代码,自己构建驱动程序(尽管很难看),但由于它已经超过1.5年了,新版本尚未发布,这将是最快的可行修复

jtds 1.3.1有一个已知的错误,如果使用java 8运行,那么在建立数据库连接时尝试使用SSL。这里有记录:
虽然它被标记为已修复,但新版本的代码尚未打包。当我们连接jtds驱动程序时,我们使用URL标志ssl=request,这样,如果服务器支持ssl,我们将建立ssl连接。当我们使用Java8时,我们遇到了数据库连接失败,而这个错误就是原因。您可以签出代码,自己构建驱动程序(尽管很难看),但由于它已经超过1.5年了,新版本尚未发布,这将是最快的可行修复

jtds1.3.1+jdk1.8.045x64在windows8.1上运行良好(windows7x64和windows8x64之间应该没有任何区别,因为jdk对两者都是相同的)。根据DES,必须提供。也许值得尝试使用jdk 1.8.0u45,看看它是否能解决您的问题。谢谢,它可以与1.80_45 x64一起使用。在Windows 8.1上,jtds 1.3.1+jdk 1.8.0_45 x64对我来说很好(Windows 7 x64和Windows 8 x64之间应该没有任何区别,因为jdk对两者都是一样的)。根据DES,必须提供。也许值得尝试使用jdk 1.8.0u45,看看它是否能解决您的问题。谢谢,它与1.80_45 x64兼容。
jtds-1.3(1.3.1)
Windows7 + jdk1.7.79 (32) works
Windows7 + jdk1.7.79 (64) works
Windows7 + jdk1.8.40 (32) works
Windows7 + jdk1.8.40 (64) NOT working
RedHat6.6 + jdk1.7.79 (64) works
RedHat6.6 + jdk1.8.40 (64) works

jtds-1.2.8:
works on any combination of system above.