0

SQL Server 2008usingに接続しようとしていますがsqljdbc4.jar、Eclipse を使用して正常に接続できました。

しかし、コードを JAR としてエクスポートし、コマンド プロンプトを使用して実行しようとすると、エラーが発生します。

D:\Eclipse\TestDBJar>java -Djava.ext.dirs=lib -jar TestDB.jar 2013 年 4 月 5 日 11:17:17 AM com.microsoft.sqlserver.jdbc.TDSChannel enableSSL 情報: java.security パス: C: \Program Files\Java\jre6\lib\security セキュリティ プロバイダ: [SUN バージョン 1.6、SunRsaSign バージョン 1.5、SunJSSE バージョン 1.6、SunJGSS バージョン 1.0、SunSASL バージョン 1.5、XMLDSig バージョン 1.0、SunPCSC バージョン 1.6] SSLContext プロバイダ情報: Sun JSSE プロバイダー (PKCS12、SunX509 キー/トラスト ファクトリー、SSLv3、TLSv1) SSLContext プロバイダー サービス: [SunJSSE: KeyFactory.RSA -> sun.security.rsa.RSAKeyFactory エイリアス: [1.2.840.113549.1.1、OID.1.2.840.113549. 1.1] 、SunJSSE: KeyPairGenerator.RSA -> sun.security.rsa.RSAKeyPairGenerator
エイリアス: [1.2.840.113549.1.1, OID.1.2.840.113549.1.1] , SunJSSE: Signature.MD2withRSA -> sun.security.rsa.RSASignature$MD2withRSA
エイリアス: [1.2.840.113549.1.1.2, OID.1.2.840.113549 .1.1.2] 、SunJSSE: Signature.MD5withRSA -> sun.security.rsa.RSASignature$MD5withRSA
エイリアス: [1.2.840.113549.1.1.4、OID.1.2.840.113549.1.1.4] 、SunJSSE: Signature.SHA1withRSA - > sun.security.rsa.RSASignature$SHA1withRSA
エイリアス: [1.2.840.113549.1.1.5, OID.1.2.840.113549.1.1.5, 1.3.14.3.2.29, OID.1 .3.14.3.2.29] , SunJSSE: Signature.MD5andSHA1withRSA -> com.sun.net .ssl.internal.ssl.RSASignature 、SunJSSE: KeyManagerFactory.SunX509 -> com.sun.net.ssl.internal.ssl.KeyManagerFactoryImpl$SunX509 、SunJSSE: KeyManagerFactory.NewSunX509 -> com.sun.net.ssl.internal .ssl.KeyManagerFactoryImpl$X509 、SunJSSE: TrustManagerFactory.SunX509 -> com.sun.net.ssl.internal.ssl.TrustMana gerFactoryImpl$SimpleFactory 、SunJSSE: TrustManagerFactory.PKIX -> com.sun.net.ssl.internal.ssl .TrustManager FactoryImpl$PKIXFactory
エイリアス: [SunPKIX, X509, X.509] 、SunJSSE: SSLContext.SSL -> com.sun.net.ssl.internal.ssl.SSLContextImpl 、SunJSSE: SSLContext.SSLv3 -> com.sun.net.ssl.internal. ssl.SSLContextImpl 、SunJSSE: SSLContext.TLS -> com.sun.net.ssl.internal.ssl.SSLContextImpl 、SunJSSE: SSLContext.TLSv1 -> com.sun.net.ssl.internal.ssl.SSLContextImpl 、SunJSSE: SSLContext.デフォルト -> com.sun.net.ssl.internal.ssl.DefaultSSLContextI mpl 、SunJSSE: KeyStore.PKCS12 -> com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore ] java.ext.dirs: lib com.microsoft. sqlserver.jdbc.SQLServerException: ドライバーは、Secure Sockets Layer (SSL) 暗号化を使用して SQL Server への安全な接続を確立できませんでした。エラー: 「RSA プリマスター シークレット エラー」。 ClientConnectionId:c0a357b6-e274-41b2-9fd a-7ef89ebdfb7a at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerC onnection.java:1667) at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1668) )

    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLSer

verConnection.java:1323) com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConne ction.java:991) で com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerCon nection.java:827) で com.microsoft .sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012) で java.sql.DriverManager.getConnection(不明なソース) で java.sql.DriverManager.getConnection(不明なソース) で TestDbConnection.main(TestDbConnection.java:13)原因: javax.net.ssl.SSLKeyException: RSA プリマスター シークレット エラー com.sun.net.ssl.internal.ssl.RSAClientKeyExchange.(未知のソース) com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone (未知のソース) com.sun.net.ssl.internal .ssl.ClientHandshaker.processMessage (不明なソース) com.sun.net.ssl.internal.ssl.Handshaker.processLoop (不明なソース) com.sun.net.ssl.internal.ssl.Handshaker.process_record (不明なソース) com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord (不明なソース) で

    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Un

既知のソース) com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(不明なソース) com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(不明なソース) com.microsoft. sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1618)

    ... 7 more Caused by: java.security.NoSuchAlgorithmException: SunTlsRsaPremasterSecret KeyG enerator not available
    at javax.crypto.KeyGenerator.<init>(DashoA13*..)
    at javax.crypto.KeyGenerator.getInstance(DashoA13*..)
    at com.sun.net.ssl.internal.ssl.JsseJce.getKeyGenerator(Unknown Source)
    ... 17 more

外部のlibフォルダーを提供しsqljdbc4.jar、JARを使用して実行してい ますjava -Djava.ext.dirs=lib -jar TestDB.jar

さまざまな投稿を読みましたが、うまくいきませんでした。

4

1 に答える 1

1

問題を解決するRunnableオプションを選択した後、JARとしてエクスポートします。Copy required libraries next to generated JAR通常の JAR では、どういうわけか、libフォルダーにアクセスできませんでした。

于 2013-04-11T10:01:14.640 に答える