2012-01-03 5 views
2

jdbc4ドライバを使用してpostgresqlデータベースに接続したいが、プログラムの実行中にクラスパスを設定したい。目的は、データベース接続用のドライバを登録することです。次のコードは、私がやろうとしていることを説明していますが、コードがうまくいきません(「ドライバが見つかりませんでした!」)。なぜ私はこの方法で接続できませんか?私は同じことを達成するための別の方法に従うことができますか?コードによるクラスパスを変更しようとしていますか?

String originalclasspath = System.getProperty("java.class.path"); 

    System.setProperty("java.class.path",originalclasspath + ";E:\\postgresql-9.0-802.jdbc4.jar"); 

    System.out.println(System.getProperty("java.class.path")); 

    System.out.println("Checking if Driver is registered with DriverManager."); 
    try { 
     Class.forName("org.postgresql.Driver"); 
    } catch (ClassNotFoundException cnfe) { 
     System.out.println("Couldn't find the driver!"); 
     cnfe.printStackTrace(); 
     System.exit(1); 
    } 

あなたのプログラムが起動した後、私は、デフォルトのクラスローダのクラスパスを変更する方法を認識していないよ事前

+1

なぜコード中に変更する必要がありますか?なぜあなたはあなたのアプリを起動するときにclasspath引数の一部としてそれを設定できないのですか? –

+0

[Java内のCLASSPATHをどのように変更するのですか?](http://stackoverflow.com/questions/252893/how-do-you-change-the-classpath-within-java) – SimonJ

+0

クラスパスが何であるかを知るためには十分に愚かではないでしょうか? – PVB

答えて

2

this answerによると、変更する方法はありません:あなたは絶対に実行する前にクラスパスを設定することができない場合は、しかし、あなたは以下のようなものを経由して、カスタムクラスローダを介して負荷にクラスを試みることができますシステムのクラスパスを確実にします。 This other questionは、クラスローダー (直接リンク:http://www.kfu.com/~nsayer/Java/dyn-jdbc.html)を介してJDBCドライバをロードする方法を提案しています。

関連する問題