2

jtdsjdbcドライバーを使用してSQLサーバーに接続しようとしています。以下はコードです

    try {
        Class.forName("net.sourceforge.jtds.jdbc.Driver");
        this.conn = DriverManager.getConnection(
                                   connectString, username, password);
        System.out.println("connected");            
    }
    catch (Exception e) {
        e.printStackTrace();
    }

パッケージはコンパイルされますが、ターミナルで次のコマンドを使用して実行しようとすると

java -cp .:jtds-1.2.5.jar org.kodeplay.migration.TestConnection

それでもClassNotFoundExceptionがスローされます。したがって、これは正しい方法ではないようです。これを行う方法 ?

ubuntuデスクトップの/etc/environmentファイルで指定されているクラスパスディレクトリにjtds-1.2.5.jarファイルをコピーしました

編集:それが印刷する完全な例外は次のとおりです

java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at org.kodeplay.migration.SqlDb.connect(SqlDb.java:21)
at org.kodeplay.migration.TestConnection.main(TestConnection.java:13)
4

1 に答える 1

2

ubuntuデスクトップの/etc/environmentファイルで指定されているクラスパスディレクトリにjtds-1.2.5.jarファイルをコピーしました

なんで?コマンドラインで、現在のディレクトリでそのファイルを検索するように指定します。

環境変数(または他の場所で設定)は、コマンドラインでクラスパスを手動で指定しない/etc/environment場合にのみ使用されます(jarファイルを実行するときにも無視されます!)。

于 2011-01-21T08:45:26.333 に答える