1

sqljdbc4.jar を使用して SQL Server 2008 データベースに接続する GUI アプリケーションがあります。コマンドラインからこれを実行すると、うまく機能します。

ただし、実行可能な JAR にラップすると、「jdbc:sqlserver://myServer:1433;databaseName=myDb に適したドライバーが見つかりません」というエラーが表示されます。Windows システムの CLASSPATH が JAR に入ると無視されることはわかっていますが、実行可能 JAR 内に sqljdbc4.jar を含めて移植可能なアプリケーションを取得する方法がわかりません。

これを修正するための私の最近の試みは次のとおりです。

私の MANIFEST.MF ファイル:

Manifest-Version: 1.0
Class-Path: lib/sqljdbc4.jar
Created-By: 1.7.0_11 (Oracle Corporation)
Main-Class: MyApp

JAR のコンパイルに使用するコマンド:

jar cmf MANIFEST.MF MyApp.jar MyApp.class help.html lib

私のディレクトリ構造は以下です。jarMyApp ディレクトリ内でコマンドを実行しています。

+ MyApp
    + lib
        - sqljdbc.jar
    - help.html
    - MANIFEST.MF
    - MyApp.class
    - MyApp.java

JAR を作成して MyApp ディレクトリ内で実行すると、正常に動作します。ディレクトリから引き出すとすぐに、エラーが発生します。内部で使用可能な sqljdbc.jar に JAR がアクセスできるようにするにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

1

MyApp.jarmanifest.mf にエントリがある実行可能な jar がある場合:

Class-Path: lib/sqljdbc4.jar

sqljdbc4.jarこれは、jar が(相対) フォルダー内に外部依存関係があることを意味しますlib。作成した jar には含まれていません。したがって、実行時にそのjarに関連するlibフォルダーが含まれていることを確認する必要があります。sqljdbc4.jarしたがって、実行時のフォルダー構造は次のようにする必要があります。

+ (a folder)
   + lib
      - sqljdbc.jar
   - MyApp.jar
于 2013-01-24T12:55:17.967 に答える