• ベストアンサー

コンパイルはうまくいったのですが…

> 全くの初心者です。お手数ですが、よろしくお願いします。 > > 実行時に下記エラーが表示されます。 > Exception in thread "main"java.lang.NoClassDefFoundError:test > > ・OS:windows XP > ・JAVA 2 SDK 「1.4.2_06」 > ・javaファイル「test.java」(C:\ja) > ・環境変数 > "Path" > 「%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\j2sdk1.4.2_06\bin」 > > ※実行がうまくいかなかったので、「CLASSPATH」を新規に設定して > みました。正直自信がありません。 > 「.;C:\ja\test;%CLASSPATH%」 > > 以上なのですが、どこがいけないかおわかりになりますでしょうか?よろしくお願いします。

  • Java
  • 回答数3
  • ありがとう数2

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

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.3

> test.javaには何も入力してありません。 え、じゃあ何をどうやってコンパイルしたのですか? > ……というように文字化けしています classファイルはテキストエディタで開いて見るためのものではありません。重要なのはclassファイルの中身ではなくて、ソースファイル(javaファイル)に書かれている内容です。 test.java ファイルをコンパイルしたら Print.class ができたということではないのですか? だとしたら、test.java には Print クラスに関する記述が書かれているはずです。それとも test.java は本当に空っぽのファイルなのですか? 何もプログラムを書いていないのにいつの間にかクラスファイルができているなんてありえませんが…… test.java には Print クラスに関する記述が書いてあって、それを > javac test.java でコンパイルしたら Print.class というファイルができた。そして、そのコンパイルされたプログラムは > java Print で実際に実行できる。 何か違いますか?

9q9q9q9q
質問者

お礼

UKY様のおっしゃるとおりでした。私が、test.javaの中身を削除していただけでした。基礎からしっかり勉強して以降と思います。本当にありがとうございました!!

その他の回答 (2)

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2

まず、初心者はむやみに CLASSPATH を設定してはいけません。すでに設定してしまっているようですが、それは削除してください。(間違ってPATHを消さないように) さて、 Exception in thread "main"java.lang.NoClassDefFoundError:test というのはtestというクラスが見つからないというエラーです。testというクラスが存在しているか、つまり、test.classという名前のクラスファイルが存在しているか確かめてください。 ※ javacコマンドに指定するのはソースファイルの名前ですが、javaコマンドに指定するのはクラスの名前です。 よく分からないという場合には test.java ファイルの中身をそのまま補足欄に投稿してください。

9q9q9q9q
質問者

補足

ご回答ありがとうございます。 初心者でよくわかりにくいこと言ったらすいません。 CLASSPATHは削除しました。 確認しましたところ、「C:\ja」に 「test.java」と「Print.class(見たことありませんでした。)」が存在していました。 ファイルの中身に関してですが、よくわらないのですが、test.javaには何も入力してありません。Print.classには、「ハ .           <init> ()V Code LineNumberTable main ([Ljava/lang/String;)V SourceFile test.java      Hello World!    Print java/lang/Object java/lang/System out Ljava/io/PrintStream; java/io/PrintStream println (Ljava/lang/String;)V          *キ ア      %   イ カ ア        」というように文字化けしています。これがいけないのでしょうか…

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

「.;C:\ja\test;%CLASSPATH%」 を 「.;C:\ja;%CLASSPATH%」 にしてみたらどうでしょう。 (クラスパスに設定するのはファイルではなくて classファイルがあるディレクトリです)

9q9q9q9q
質問者

お礼

ご回答ありがとうございます!

関連するQ&A

  • JDBCの環境変数について

    はじめまして。JDBCの環境変数の設定がうまくいかず、プログラムの動作確認が出来ません。プログラムの初心者です。皆さんのお力を貸して頂ければと思います。以下、状況を書き出します。よろしくお願い致します。 <コマンドプロンプト> C:\>javac SelectMySQLJDBC.java C:\>java SelectMySQLJDBC Exception in thread "main" java.lang.NoClassDefFoundError: SelectMySQLJDBC <ユーザー環境変数> PATH=C:\j2sdk1.4.2_10\bin;C:\mysql\bin CLASSPATH=C:\mysql\lib\mysql-connector-java-3.0.17-ga-bin.jar JAVA_HOME=C:\j2sdk1.4.2_10 TOMCAT_HOME=C:\Program Files\Apache Group\Tomcat 4.1 <システム環境変数> Path=%JAVA_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

  • Exception in thread "main" java.lang.NoClassDefFoundError: helloworldで困っています

    Exception in thread "main" java.lang.NoClassDefFoundError: helloworldと出てJAVAが実行できません。どうしたらよいのでしょうか。以前もこういう質問をしたのですが、またなってしまいました。 CLASSPATHの設定とかもしてみようといろいろと試行錯誤したのですが、だめでした。どういう設定にすればよいかもわかりません。 どうにかして、 java HelloWorld で実行できるようになりませんか? JAVAのSDKをインストールした場所は C:\j2sdk1.4.0 です。コンパイルはできます。 OSはWindowsXPです。初心者ですが、どうかよろしくお願いします。

  • java にてコンパイルできない。

    java にてコンパイルできない。 javaにてコンパイルそのものができません。 下記がその状況です。 java>javac test.java Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac C:\java>set JAVA_HOME JAVA_HOME=C:\Program Files\Java\jdk1.5.0 ネットで調べてコンパネの環境設定でPATH、CLASSPATHの設定等は変更しました。 現在のところ上記の設定はJAVAのものしか入っておりません。 他のPCでは正常にコンパイル実行できますので文法の間違いはないものと思われます 何か考えられることはありますでしょうか

  • java初心者 脳みそが破裂しそうです・・・。

    javaに挑戦しようと思ったのですが以下の文が表示され動きません。 個人的に調べてclasspathの設定が悪いと思うのですが、あれこれ手を尽くしても変化がないです。 もし分かる方がいましたら教えて下さいお願いします。 症状・・・「Exception in thread "main" java.lang.NoClassDefFoundError: test」 現在の状態 PATH・・・「C:\Program Files\Java\j2re1.4.2_14\bin」 CLASSPATH・「.;C:\Program Files\Java\」 DLソフト・・・「J2SE Software Development Kit (SDK) は J2SE」

  • コンパイルした後 java (classファイルの名前) が実行できない

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

    • ベストアンサー
    • Java
  • Java実行でのエラー

    Javaを勉強したいのでインストールしてみたところまでは良かったのですがコンパイルを通した後に実行すると動きません。 CLASSPATH:c:\Java JavaファイルがJavaフォルダの中に入っている状態です。 【手順】 c:\Java>java HelloJava.java ↓コンパイル成功 c:\Java>java HelloJava Exception in thread "main" java.lang.NoClassDefFoundError: HelloJava というエラーが出てJavaを実行できません。 エラーの内容がわかる方はがいらっしゃれば教えて頂きたいです。

    • ベストアンサー
    • Java
  • Javacが認識されません。

    環境変数はユーザー環境変数に新規で変数名Path 変数値 C:\j2sdk1.4.2_18\bin システム環境変数にPathがあったので、 %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\pcdNavi\bin;C:\Program Files\Fujitsu\sa\dll;C:\j2sdk1.4.2_18\binとしました。 (C:)直下にj2sdk.1.4.2_18フォルダーとJavaフォルダーがあります。 j2sdk.1.4.2_18フォルダー内のbinフォルダー内にjavac.exeコマンドがあります。 Javaフォルダー内にソースファイルのHello.javaがあります。 コマンドプロンプトにjava -versionでバージョンが表示されます。 cd \javaで C:\java>になり、javac Hello.javaと入力すると Error occurred during initialization of VM java/lang/NoClassDefFoundError:java/lang/Objectでエラー表示になります。 先に進めないので宜しく御願いします。

    • ベストアンサー
    • Java
  • Exception in thread "main" java.lang.NoClassDefFoundError: Hello

    Javaでコンパイルは通るのですが、実行すると。 Exception in thread "main" java.lang.NoClassDefFoundError:Hello が出ます。 色々調べて、「java -classpath . Hello」または「set classpath=.;%classpath%」とすると実行できることが分かりました。 以前は、このような入力をしなくても実行できたのですが、何が原因なのでしょうか? また、この「Classpath」とは何ですか? 環境設定をするとコマンドラインからの実行ファイル名を入力するだけで実行できる(あってるのかな?)事は分かりますが、これは何なのでしょうか?環境設定とは異なる話なのでしょうか?

  • コマンドプロンプトから実行した時にエラーが出る

    Javaでバイトコードを実行しようとしたら、こんな文が出ました。 Exception in thread "main" java.lang.NoClassDefFoundError: Test01 実行できないのでWEBで調べてみたところ、以下のような回答がありました。 以下引用文>> Exception in thread "main"java.lang.NoClassDefFoundError:HelloWorld というエラーが出て動きません。 [S002-A08] 実行時エラーがでていることから、javaインタープリターは動いています。 HelloWorld という名前のクラスがみつからないというエラーです。 JDK1.2 以降の Java をお使いの場合、、 プロンプト> java -classpath . HelloWorld でどうでしょう? これでうまくいくならば CLASSPATH環境変数の 設定に . (ドット、ピリオド)がないのが原因です。 CLASSPATH環境変数は、間違い易いことが多い機能ですので完全に理解するまでは使わず、 -classpath 実行時オプションでクラスパス(java VM がクラスファイルを探すパス)を 教えてあげることをお勧めします。 doskey とうてば、Windows95/98 の MS-DOSプロンプトでのコマンド入力も苦にならないでしょう。 >> 以前はこんなことせずともコンパイル、実行できたんですが、何が変わってしまったのでしょうか。PATHの設定は正しく設定しているつもりなのですが… 個人的には毎回実行パラメーターに"-classpath . "と打ち込むのは面倒なので、打ち込まないでも実行できる方法が知りたいと思います。 ちなみにJDKのバージョンは1.3.1_01 OSはWindows2000です。

    • ベストアンサー
    • Java
  • javaが出来ません

    簡単な質問で申し訳ないのですが、 j2sdk1.4.1をインストールして "HelloWorld"とDOSで表示しようとしたのですが javac HelloWorld.java までは出来てclassもあるのですが java HelloWordを実行しようとしのですが、 Exception in thread "main" java,lang.NoClassDefFoundError:HelloWorld と表示されます。 どうしたらいいのでしょうか? お願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう