0

私は JDBC を初めて使用し、Eclipse で最初のプログラムを作成しました。データベースとして Oracle 11g XE を使用しています。ojdbc6.jarjdkインストールのlibフォルダーにコピーして、クラスパスに追加しました。これは私のコードです:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Test {

/**
 * @param args
 */

String url = "jdbc:oracle:thin:@Voldemort:1521:XE";
String username = "surender";
String password = "oracle";
Statement stmt;
String query;

public static void main(String[] args) {
    // TODO Auto-generated method stub
    new Test().work();

}

void work() {
    try {
        Connection conn = DriverManager.getConnection(url, username, password);
        stmt = conn.createStatement();
        query = "SELECT * FROM employees";
        ResultSet rset = stmt.executeQuery(query);
        while(rset.next()) {
            System.out.println(rset.getInt(1) + " " + rset.getString(2) + " " + rset.getString(3) + " " + rset.getString(4));
        }
    }
    catch(SQLException se) {
        System.out.println("Exception!!");
        se.printStackTrace();
    }
}

}

何らかの理由で、Eclipseでも、コマンドプロンプトを介してIDEの外部で実行しても機能しません(私はWindows 7を使用しています)。しかしojdbc6.jar、Eclipse でプロジェクトのビルド パスに追加すると、Eclipse では正常に動作しますが、期待どおりにプロンプ​​トからは動作しません。

私はネット上のいくつかのチュートリアルに従いましたが、それらはすべて、ドライバーファイルをクラスパスに追加する必要があると述べていますが、他には何もありません。(私ojdbc6.jarは気まぐれにbuildpathに追加しました.kiss and tell :pのようなものです)。

さて、これはなぜですか?

ビルド パスに追加する必要があるリソースの種類は何ですか?

プロジェクトを IDE の外で実行したい場合はどうすればよいですか?

事前にサンクス!

4

2 に答える 2

2

経験則>> すべての依存関係の jar ファイルをクラスパスに追加する必要があります。すなわち: JDBC ドライバーまたはその他の依存 jar。

Eclipse では、ojdbc6.jar を Eclipse プロジェクトのクラスパスに追加した後にのみプロジェクトを実行できます。

コマンドラインからプロジェクトを実行したい場合、同じルールが適用されます。そのためには、Java プログラムの実行中に依存するすべての jar ファイルを指定する必要があります。

すなわち: java -classpath ojdbc6.jar . package.classname

于 2013-04-20T11:20:49.853 に答える
0

JDBC ドライバー (またはその他の Java ライブラリー) を使用できるようにするには、クラスパスにある必要があります。Eclipse ビルド パスは、アプリケーションが Eclipse 内から実行されるときにクラスパスとして使用されます。

IDE の外部で実行するには、実行時にクラスパスを指定する必要があります。これは、次を使用して実行できます。

java -cp yourlib.jar;ojdbc6.jar name.of.your.MainClass

(これは、yourlib.jar と ojdbc6.jar の両方が現在の作業ディレクトリにあると想定しています。Linux:では、代わりに使用されます;)

または、実行可能な jar を使用している場合は、 ojdbc6.jar がMANIFEST.MFエントリClass-Pathに含まれていることを確認する必要があります。次に例を示します。

Class-Path: ojdbc6.jar

これで、実行可能な jar を次のように実行できます。

java -jar yourlib.jar

(他のすべてのものが-のようMainClassMANIFEST.MF正しく設定されていると仮定します)

于 2013-04-20T11:17:46.603 に答える