すみません。本当につまらない質問かもしれませんが
コンパイルまではDOS窓でできるんですが。できたCLASS
ファイルを java (できたclassファイル名) を実行しよう
としても、
Exception in thread "main" java.lang.NoClassDefFoundError: (できたファイルの名前)
と表示されてしまい、まったく実行できません。
これはどうしたら実行できるのでしょうか?
なお、最新版のSDKとJava 2 Runtime Environmentはインストールしています。
どうかお願いします。

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

A 回答 (3件)

1. .classまでクラスファイル名つけてませんか?


2. カレントディレクトリがclassファイルのある場所にあるかまたはクラスパスがclassファイルのある場所に追加されていますか?
3. クラスファイル名間違ってませんか?
4. CLASSPATHを設定した場合、.(現在のディレクトリ)を指定していますか?
5. 2番目の回答者の方と同じです、ファイル名とクラス名一致してますか?

JDKが古いバージョンの物も必要というのはちょっと聞いたことがないですが・・・。

この回答への補足

4でした。ありがとうございました。

補足日時:2001/11/09 18:58
    • good
    • 1

僕も初心者なので、詳しくはわかりませんが。

ファイル名の指定の仕方が間違っているのではないでしょうか?
Exception in thread "main"java.langNoClassDefFoundError;ファイル名
というのは、jvm が 「mainメソッドがないよ」って言っているはずです。
ですから、java コマンドを実行するときは、ファイル名ではなく、mainメソッドの入っているクラス名を指定すればよいのではないでしょうか?

例えば、sample1.java というファイルをつくったとします。
//////////////////////////////////////////////////////////////
//sample1.java
class sample2{
public static void main(String args[]){
System.out.println("Hello World!!");
}
}
///////////////////////////////////////////////////////////////
これを実行する場合、
javac sample1.java
java sample2
としなければなりません。

javac sample1.java
java sample1
は間違いです。ファイル名ではなく、クラス名を指定するのです。
多分、これで間違えたと思うのですが、間違っていたら、ごめんなさい。
それでは、頑張ってくださいね。
    • good
    • 0

個人的な経験なのですが、最新のJDKだけでは確かクラスファイルが足りないはずです。

JDK1.1.8とかJavaの時代のものをダウンロードしてきて、インストール後、CLASSPATHに古いものをJDK1.3のlibのパスの後に追加すれば、きちんと動作するはずですよ。

間違いがありましたらご指摘ください。
ではでは☆
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

この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:@です。

Q Exception in thread "main" java.la

 Exception in thread "main" java.lang.StackOverflowError
というエラーが出ます

 moji()にtestという変数をいれてやり、mainから、書かそうとしていますが、
 Exception in thread "main" java.lang.StackOverflowError
というエラーが出ますが、何故かわかりません。
 宜しくお願いします。

************************************************************
public class ArgsTest2
{
public static void main(String args[])
{
moji();
}

public static void moji()
{
String[] test = {"abcde","fghij"};
main(test);
}
}

Aベストアンサー

ユーザ定義関数(moji)がmain関数を呼ぶことができるのか
分かりませんが、できたとしてもこのコードでは、

main()→moji()→main()→moji()・・・

の無限ループになりますね。

文字を出力するコードもありませんし、
もう一度落ち着いて考え直してみてください。

QException in thread "main" java.…でも。

Javaの初心者です。
仕事で他の方が作ったプログラムをいじることになりました。
あるclassファイルを実行しようとしたところ、javaコマンドで実行しようとしたところ、タイトルにあるように、Exception in thread "main" java.lang.NoClassDefFoundError:というエラーメッセジーが出ました。
いろいろ調べた結果、「:」以降に出てくる名前のクラスが見つからず、大半の場合は、CLASSPATHの指定がされていなかったり、まちがっていることが分かりました。
ただ、今回、表示されたのは、こんなクラス名なんです。
org/apache/bcel/generic/ATHROW

bcel-5.1.jarというファイルはあるのですが、これをどこかに置いたら解決するものなのでしょうか?
ためしに、実行しようとしたclassファイルと同じディレクトリに置いてましたが、何の効果もありませんでした。

もしお分かりになる方がいらっしゃいましたら、よろしくお願い致します。

Aベストアンサー

CLASSPATHにそのjarファイル(のフルパス)を追加してください。

jarファイルの中には、classファイルが入っています。
通常はCLASSPATHには、classファイルのあるディレクトリを指定しますが、
jarファイルに入っているclassファイルを呼び出したい場合は
jarファイルそのものをCLASSPATHに追加します。

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:\...


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報