• ベストアンサー

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の時はあっさりできたのに・・・ 他に設定が必要なのでしょうか? 見直せば良い点などお教えいただければ助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

質問に書かれたコードを見る限りはあっているように思えます。 .jar の中身を確認してみては? % jar tvf /usr/local/pgsql/share/java/postgres.jar ここに org/postgresql/Driver.class があるかどうかを。

ssm3u
質問者

お礼

ありがとうございます。結果としてできました。 上記、記載いただいた % jar tvf /usr/local/pgsql/share/java/postgres.jar を実行した際にエラーとして 「ファイルがみつかりません」と出ました。 もしや!と思ったのですが・・・案の上 postgres.jar ではなくて postgresql.jar だったんです。 大変申し訳ありません。

その他の回答 (2)

回答No.3

もしpostgres.jarをJAVA_HOME/lib/(カレントディレクトリ)に加えてみても実行されない場合は、 http://jdbc.postgresql.org/download.html で、最新版をダウンロードしてみてください。

回答No.2

開発環境がありませんのでお門違いのアドバイスになってしまうかもしれませんが、 JavaVM実行時にパラメタを以下のように指定してはいかがでしょうか? %java -D jdbc.drivers=org.postgresql.Driver FirstDBAccess ひょっとしたらうまくいくかも知れません。試していませんのでなんともいえませんが。 また、詳細が分かりましたら、書き込みます。

関連するQ&A