- ベストアンサー
jdbcを利用したpostgres接続
Solaris9/02 + PostgreSQL7.2.3 で構築しました。 java -version 1.4.0_01 です。 PostgreSQL の Configure時に --with-javaオプションを付け、 /usr/local/pgsql/share/java 配下にpostgres.jarが出来ました。 /home/ssm3u の .cshrcに setenv JAVA_HOME /usr/j2se setenv CLASSPATH /usr/local/pgsql/share/java/postgres.jar:. (postgres.jarファイルとカレント) を追加し、 % vi FirstDBAccess.java import java.sql.*; public class FirstDBAccess { public static void main(String argv[]) { try { Class.forName("org.postgresql.Driver"); } catch (Exception e) { e.printStackTrace(); } } } % javac FirstDBAccess.java % java FirstDBAccess と実行すると、 java.lang.ClassNotFoundException: org.postgresql.Driver at java.net.URLClassLoader$1.run(URLClassLoader.java:198) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:186) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265) at java.lang.ClassLoader.loadClass(ClassLoader.java:262) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:130) at FirstDBAccess.main(FirstDBAccess.java:5) となります。 上記エラーになるのは CLASSPATH設定がおかしい時と思うのですが、 何がおかしいのかわかりません。 Oracleとか他のDBの時はあっさりできたのに・・・ 他に設定が必要なのでしょうか? 見直せば良い点などお教えいただければ助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
質問に書かれたコードを見る限りはあっているように思えます。 .jar の中身を確認してみては? % jar tvf /usr/local/pgsql/share/java/postgres.jar ここに org/postgresql/Driver.class があるかどうかを。
その他の回答 (2)
- pentaro_2000
- ベストアンサー率23% (29/123)
もしpostgres.jarをJAVA_HOME/lib/(カレントディレクトリ)に加えてみても実行されない場合は、 http://jdbc.postgresql.org/download.html で、最新版をダウンロードしてみてください。
- kazuho_goo
- ベストアンサー率56% (34/60)
開発環境がありませんのでお門違いのアドバイスになってしまうかもしれませんが、 JavaVM実行時にパラメタを以下のように指定してはいかがでしょうか? %java -D jdbc.drivers=org.postgresql.Driver FirstDBAccess ひょっとしたらうまくいくかも知れません。試していませんのでなんともいえませんが。 また、詳細が分かりましたら、書き込みます。
お礼
ありがとうございます。結果としてできました。 上記、記載いただいた % jar tvf /usr/local/pgsql/share/java/postgres.jar を実行した際にエラーとして 「ファイルがみつかりません」と出ました。 もしや!と思ったのですが・・・案の上 postgres.jar ではなくて postgresql.jar だったんです。 大変申し訳ありません。