Java初心者です。過去に類似の質問が多数あり、目を通しましたが、よくわかりませんでした。よろしくお願いします。

コンパイル後、java Sample1と入力して実行しようとすると、
Exception in thread "main" java.lang.NoClassDefFoundError:Sample1

というエラーが出ます。Windows2000を使用。
ユーザー環境変数、システム環境変数の欄共にPathという変数はありますが、CLASSPATHはありません。
CLASSPATHは新規に追加するのでしょうか。それともPathの中に設定するのでしょうか。具体的にどのように設定するのでしょうか。

現在は、毎回Dos画面にset CLASSPATH=.;%CLASSPATH%と入力して実行していますが、PCを起動するたびに行わなくてはならないので、そうしなくてよい方法を教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

CLASSPATH を追加します。

Path はコマンドのを探すためにあるので今回は関係ありません。
    • good
    • 0
この回答へのお礼

alicia-yさん、こんにちは
おかげさまで解決しました。意外と簡単だったのですね。
本当にありがとうございました。

お礼日時:2002/02/14 01:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q「Exception in thread "main" java.lang.NoClassDefFoundError: CUSTOMER」エラー

Oracle9i R2にJDBCで接続してCUSTOMER表のレコード件数を調べる単純なJavaプログラムをつくろうとしています。

以下のソースをOracle端末上で実行すると「Exception in thread "main" java.lang.NoClassDefFoundError: CUSTOMER」というエラーメッセージが表示されます。

環境設定としてCLASSPATHにclasses12.zipのパスを通しました。

-------------------------------------------------
// JDBC APIのインポート
import java.sql.*;class CUSTOMER {
public static void main (String args[])
throws SQLException, ClassNotFoundException {

// JDBC Driverの登録
Class.forName("oracle.jdbc.driver.OracleDriver");

// Oracle9iに接続
Connection conn =
DriverManager.getConnection ("jdbc:oracle:thin@192.168.0.10:1521:testdb", "test", "test");

// ステートメントを作成
Statement stmt = conn.createStatement();

// 問い合わせの実行
ResultSet rset = stmt.executeQuery("SELECT COUNT(*) FROM CUSTOMER");

// 問い合わせ結果の表示
while ( rset.next() ) {
// 列番号による指定
System.out.println(rset.getInt(1) + "\t" + rset.getString(2));
}

// 結果セットをクローズ
rset.close();

// ステートメントをクローズ
stmt.close();

// 接続をクローズ
conn.close();
}
}
-------------------------------------------------
何かおわかりの方いらっしゃいましたら教えて下さい。宜しくお願いします。

Oracle9i R2にJDBCで接続してCUSTOMER表のレコード件数を調べる単純なJavaプログラムをつくろうとしています。

以下のソースをOracle端末上で実行すると「Exception in thread "main" java.lang.NoClassDefFoundError: CUSTOMER」というエラーメッセージが表示されます。

環境設定としてCLASSPATHにclasses12.zipのパスを通しました。

-------------------------------------------------
// JDBC APIのインポート
import java.sql.*;class CUSTOMER {
public static void main (String args[])
...続きを読む

Aベストアンサー

thin@ではなくthin:@です。

Qjava.lang.NoClassDefFoundError

こちらの
http://www.hellohiro.com/socket.htm
サーバー(マルチスレッド)とクライアントのプログラムを
Windows環境でサーバーのアドレスを"localhost"にして一台のPC上で実行したところ
うまくいったのですが
今度はサーバー側のプログラムをlinuxサーバーにおいてアドレスを指定して行ったところ
コンパイルは正常に行えて(classファイルは作成されました)、実行するとクライアントからの接続までは
うまくいくのですが
("172.0・・・ から接続がありました"とは表示されます)
その後通信が切れてしまい
Exception in thread "main" java.lang.NoClassDefFoundError:
Connect
という例外が起きてしまいます。
過去ログなどを調べたところクラスの定義が見つからないとのことなのですがソースにはしっかり定義されていると思います
またサーバーのプログラムの実行を
java -classpath . HelloWorldMultiThreadServer
などでも行ってみましたが同じ状況になってしまいます
どなたか是非アドバイスをいただけないでしょうか
よろしくお願い致します

こちらの
http://www.hellohiro.com/socket.htm
サーバー(マルチスレッド)とクライアントのプログラムを
Windows環境でサーバーのアドレスを"localhost"にして一台のPC上で実行したところ
うまくいったのですが
今度はサーバー側のプログラムをlinuxサーバーにおいてアドレスを指定して行ったところ
コンパイルは正常に行えて(classファイルは作成されました)、実行するとクライアントからの接続までは
うまくいくのですが
("172.0・・・ から接続がありました"とは表示されます)
その後通信が切れてし...続きを読む

Aベストアンサー

linux側でjava -versionを叩いて、1.4と出ますよね?

コンパイル時と実行時のJavaバージョンが異なっていたり
しないでしょうか?

私は、下記のようなシェルを作成して問題なく動作してます。
クラスパスも指定無しですので、Java1.4で
JAVA_HOMEの設定があれば大丈夫だと思います。
※JAVA_HOMEの設定が無いとjava.net.*等のライブラリに
パスが通らないかもしれないです。(たぶん。。。)

#!/bin/sh

JAVA_HOME=/opt/java1.4

echo $JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH

echo $CLASSPATH

java -version
javac HelloWorldSocketServer.java
java HelloWorldSocketServer


例外のスタックトレースをもっと付けてもらえると
良いのですが・・・
Exception in thread "main" java.lang.NoClassDefFoundError:
Connectの続きを

linux側でjava -versionを叩いて、1.4と出ますよね?

コンパイル時と実行時のJavaバージョンが異なっていたり
しないでしょうか?

私は、下記のようなシェルを作成して問題なく動作してます。
クラスパスも指定無しですので、Java1.4で
JAVA_HOMEの設定があれば大丈夫だと思います。
※JAVA_HOMEの設定が無いとjava.net.*等のライブラリに
パスが通らないかもしれないです。(たぶん。。。)

#!/bin/sh

JAVA_HOME=/opt/java1.4

echo $JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH

echo $CLASS...続きを読む

Qjava.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

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

ご質問させて頂きます。

自分の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...続きを読む

Aベストアンサー

ふたたび,#1です.

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

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

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

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

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

Qjava.lang.NoClassDefFoundErrorというエラーが出ます その2

ご質問させて頂きます。

java.lang.NoClassDefFoundErrorというエラーが出ます
http://oshiete1.goo.ne.jp/kotaeru.php3?q=952983
の続きの質問なんですが・・・。

次のような実行時エラーが出ます。
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)

そこで、
>PostgreSQLのODBCドライバをCLASSPATHに含めていますか?
>postgresql.jarとかpg72jdbc2.jarといったファイルがどこかにあるはずです.
と、回答者の方からアドバイスをして頂きました。

ところが、postgresql.jarとかpg72jdbc2.jarもありませんでした。
ネットで検索をしたところ、「postgresql743.jar」というのがありましたので
/usr/javaに格納しました。

/etc/profileに、
export PATH=$PATH:/usr/java
export CLASSPATH=$CLASSPATH:/usr/java.
と追加しました。

しかし、同じエラーが出てします。
対処方法をご存じでしたら、ご教授して頂けたら幸いです。

ご質問させて頂きます。

java.lang.NoClassDefFoundErrorというエラーが出ます
http://oshiete1.goo.ne.jp/kotaeru.php3?q=952983
の続きの質問なんですが・・・。

次のような実行時エラーが出ます。
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(Class...続きを読む

Aベストアンサー

まともな答えを導き出せなくて申し訳ないです.

> String url = "jdbc:postgresql://192.168.200.230/home/postgres/aa";
> ここの書き方はこれで宜しいのでしょうか?

確かに,いろいろなサイトや書籍で
String url = "jdbc:postgresql://servername:5432/dbname";
としています.私も何も考えずにそうしています.

>SQLERROR: org.postgresql.util.PSQLException: A connection error
>has occurred: org.postgresql.util.PSQLException: FATAL:
>no pg_hba.conf entry for host "192.178.215.230", user "postgres",
>database "home"

上記のメッセージで指定したデータベース "home" になっているということは,
192.168.200.230 の後ろの home がデータベース名として解釈されてい
るようですね.
ローカルの環境でポート番号はなくても動くみたいです.


とりあえず,Linux上で動かしていますので,

○sample1.java
String url = "jdbc:postgresql://localhost:5432/xxxx";
(xxxx にはデータベース名を入れてください)

○pg_hba.conf
host all all 127.0.0.1 255.255.255.255 trust

として行ってみたらいかがでしょう?
pg_hba.confを編集したときはpostmasterの再起動をお忘れなく.

まともな答えを導き出せなくて申し訳ないです.

> String url = "jdbc:postgresql://192.168.200.230/home/postgres/aa";
> ここの書き方はこれで宜しいのでしょうか?

確かに,いろいろなサイトや書籍で
String url = "jdbc:postgresql://servername:5432/dbname";
としています.私も何も考えずにそうしています.

>SQLERROR: org.postgresql.util.PSQLException: A connection error
>has occurred: org.postgresql.util.PSQLException: FATAL:
>no pg_hba.conf entry for host "192.178.21...続きを読む

QException:java.lang.NullPointerException って?

WinXPproを家族で使用しています。
制限ユーザーの娘が「お絵かき掲示板」を利用しようとすると
[Exception:java.lang.NullpointerException]とエラーメッセージが出て使えなくて困っていると言います。管理者権限の私のところで試しにやってみると、上記のエラーメッセージは出なく使えるんです。どうすれば、制限ユーザーも使えるようになるのでしょうか?

ちなみに、Javaのサイトから、最新版の
[J2SE v1.4.0_1]ダウンロード→インストールしてあります。

Aベストアンサー

よく分かりませんが、外してたら、ごめんなさい。

 環境変数設定で「システム環境変数」に設定してますか?管理者さんの「ユーザ環境変数」に環境設定をすると、他のユーザはJavaなど使えませんよ。

 インターネットエクスプローラのJavaに制限を設けているとか?それに関しては、過去ログにたくさんあります。参考URLでどうぞ。下のほうです。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=316419


人気Q&Aランキング

おすすめ情報