こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

java.lang.NoClassDefFoundErrorというエラーが出ます

ご質問させて頂きます。

自分のPC(XP)からTelnetで
LINUX(Red Hat Linux release 9 (Shrike))に接続しています。

サンプルを参考にして以下のコードを作ってみました。
これは、PostgreSQLで作成したデータベース(aa)の
テーブル(test)のデータを表示させようとしています。

import java.sql.*;

public class sample1{
 public static void main(String [] args){
  String driver = "org.postgresql.Driver";
  String url = "jdbc:postgresql://192.178.215.230/home/postgres/data/aa";
  try{
    Class.forName(driver);
    Connection con = DriverManager.getConnection(url,"postgres","aaaa");
    Statement st = con.createStatement();
    ResultSet rs = st.executeQuery("SELECT * FROM test"); 
    System.out.println("shainno shimei ");
    while ( rs.next() ){ 
      System.out.println(" "+rs.getInt("shainno")+" "+ rs.getString("shimei"));
    }
    rs.close(); 
    st.close(); 
    con.close();  
  }catch (SQLException sqlEx){
    System.out.println("SQLERROR: " + sqlEx.toString());
  }catch (Exception ex){
    ex.printStackTrace();
  }
 }
}

これを実行すると、
[postgres@localhost postgres]$ java sample1
以下のようなエラーが出てします。
Exception in thread "main" java.lang.NoClassDefFoundError: sample1

ご教授して頂けたら幸いです。

投稿日時 - 2004-08-06 14:39:37

QNo.952983

困ってます

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

ふたたび,#1です.

> 何度も厚かましいお願いで
> 大変に恐縮ですが
> ご教授して頂けたら幸いです。

いえいえ.
もうすぐできますよ.頑張りましょう.

PostgreSQLのODBCドライバをCLASSPATHに含めていますか?

postgresql.jarとかpg72jdbc2.jarといったファイルがどこかにあるはずです.
Linuxでの書式はわかりませんので,他の方にお願いするとして...汗

Windowsでは以下のようになります.
CLASSPATH=.;C:\dir\postgresql.jar;c:\...

投稿日時 - 2004-08-06 16:42:58

お礼

>postgresql.jarとかpg72jdbc2.jarといったファイルがどこかにあるはずです.
探してみますね。
結果のご返事が遅くなりそうなので
一端締めたいと思います。
有り難うございました。

投稿日時 - 2004-08-06 17:12:02

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

こんにちは

これと同じではないかと思います.
http://okweb.jp/kotaeru.php3?q=951597

CLASSPATHがきちんと設定されていないためでしょう.

参考URL:http://www.wikiroom.com/java/?path%2Cclasspath

投稿日時 - 2004-08-06 14:51:36

補足

ご返事有り難うございました。

/etc/profileに以下のように追加してみましたが
旨くいきませんでした。
export PATH=$PATH:/usr/java
export CLASSPATH=$CLASSPATH:.

javacでコンパイルをすると
エラーが100箇所出るのですが
それとは関係がないでしょうか?

投稿日時 - 2004-08-06 16:04:22

お礼

コンパイルエラーを取ったところ
エラーの内容が以下のように変わりました。

何度も厚かましいお願いで
大変に恐縮ですが
ご教授して頂けたら幸いです。


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:299)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at sample1.main(sample1.java:8)

投稿日時 - 2004-08-06 16:22:45