- 締切済み
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では正常にコンパイル実行できますので文法の間違いはないものと思われます 何か考えられることはありますでしょうか
- みんなの回答 (12)
- 専門家の回答
みんなの回答
- pan_java
- ベストアンサー率0% (0/0)
恐らくインストール先に問題があります。 Program Files以下にするとProgramとFilesの間のスペースがコンパイル時に悪影響を及ぼしてしまいます。半角スペースのない場所にインストールし直してやってみてください。
- mako_sea
- ベストアンサー率47% (62/130)
設定は正しくできているようですね。 ところで、 「java.lang.NoClassDefendError: com/sun/tools/javac/Main」で ネットを検索したら、次のようなQAがヒットしました。 よく似た問題に直面されており、解決しています。 http://rararahp.cool.ne.jp/cgi-bin/lng/java/javalng.cgi?print+200305/03050005.txt C:\Program Files\Java\jdk1.5.0\libの中に tools.jarはありますでしょうか? もしなかったら、JDKのインストールに失敗しているのかもしれません。 また、質問内容で >>他のPCでは正常にコンパイル実行できますので文法の間違いはないものと思われます とありますから、 正常実行できるPCと状態(各環境変数の値、インストールしたJDKのフォルダ構成等)を よく比較して確認してみてはどうでしょうか。
お礼
お付き合いをありがとうございます。 tools.jarは存在を確認しました。 また、上位階層、下位階層なども含め読み取り専用を解除を実施してみましたが改善されませんでした 同階層にsrcというzipファイルがあったので解凍してみましたが改善されませんでした。 言われたとおり比較してみたいとおもいます
補足
全く同じスタイルにしてみたのですが 改善されないです(泣) さらにアドバイスがありましたらお願いできれば幸いです
- いけだ ひろし(@ike-2000)
- ベストアンサー率53% (69/129)
ちょっと根本的な確認ですが、 java>javac test.java と入力されているのはないでしょうか?。 コンパイルは javac test.java です。 その後、java実行が java test.class となります。 ここはOKですか?。
お礼
ありがとうございます それはOKです 入力は javac test.java と入力しています。 実行はいつも java test のように実行していました
- mako_sea
- ベストアンサー率47% (62/130)
>>>> c:ProgramFiles\Java\jdk1.5.0\bin >> >>の誤りでした 上記で設定されていたとしても、 パスに誤りがある(\マークと空白値抜け)のはおわかりになりますか? それともこれも貼り付けの誤りでしょうか。 状況が曖昧ですと、アドバイスも想像でしか言えないので曖昧になります。 やりとりが往復してご面倒でしょうが 更なるアドバイスをお求めでしたら できるだけ具体的に、かつ正確に状況説明をお願いします。 以下、私から問題判別のために4つ質問します。 (1) >>一応ご指摘のとおりPATHにc:\Program Files\Java\jdk1.5.0\bin;.;.\;を入力し >>再起動して試してみましたが同じエラーがでました 再起動とは何を再起動したのですか? OS? DOSプロンプトウィンドウ? (2) また、「同じエラー」とはこれまで質問とお礼に登場した 以下のエラーのうちどちらのことですか A. >>C:\java>javac -version >>Exception in thread "main" java.lang.NoClassDefendError: com/sun/tools/javac/Main B. >>java>javac test.java >>Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac (3) 現在 echo %PATH% をプロンプトで実行すると 「c:\Program Files\Java\jdk1.5.0\bin;.;.\;」 と1文字も違わず表示されていますか? (4) エクスプローラーを起動して 「C:\Program Files\Java\」のフォルダを右クリックし、 「検索」を選択して 「javac」という名称のファイルを探してみてください。 javac.exe もしくは javac.batというファイルが見つかったら、 そのフォルダパスを省力なしで教えてください。
お礼
上記で設定されていたとしても、 パスに誤りがある(\マークと空白値抜け)のはおわかりになりますか? それともこれも貼り付けの誤りでしょうか。 単なる貼り付けの誤りでした。 お手数をおかけして申し訳ありません (1) 再起動とは何を再起動したのですか? OS? DOSプロンプトウィンドウ? 回答.OSそのものの再起動になります (2) また、「同じエラー」とはこれまで質問とお礼に登場した 以下のエラーのうちどちらのことですか A. >>C:\java>javac -version >>Exception in thread "main" java.lang.NoClassDefendError: com/sun/tools/javac/Main B. >>java>javac test.java >>Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac 回答.Aの方になります。 (3) 現在 echo %PATH% をプロンプトで実行すると 「c:\Program Files\Java\jdk1.5.0\bin;.;.\;」 と1文字も違わず表示されていますか? 回答.はい、そのように表示されております 以下にDOSプロンプトの表示をそのままコピペします。 c:\Program Files\Java\jdk1.5.0\bin;.;.\; (4) エクスプローラーを起動して 「C:\Program Files\Java\」のフォルダを右クリックし、 「検索」を選択して 「javac」という名称のファイルを探してみてください。 javac.exe もしくは javac.batというファイルが見つかったら、 そのフォルダパスを省力なしで教えてください。 回答.javac.exeが検索でヒットしました パスは C:\Program Files\Java\jdk1.5.0\bin となっていました javac.batというファイルは発見できませんでした。 設定はすべてのファイルとフォルダを表示するにしています。 お手数をおかけいたしますが以上ご回答させていただきます
- いけだ ひろし(@ike-2000)
- ベストアンサー率53% (69/129)
何処かにjavac.batがいませんか?。 エラーメッセージはjavaプログラム実行時のものだと思います。 どうも辻褄が合いません。 そうでなければ、javacにmain関数がいない(壊れている)ことになります。
お礼
javac.batはすべてにドライブを検索してもありませんでした
- mako_sea
- ベストアンサー率47% (62/130)
>> c:\java>echo %java_home% >> c:\Program Files\Java\jdk1.5.0 >> >> c:\java>echo %path% >> c:Files\Java\jdk1.5.0\bin PATHの設定が誤っているようです。 PATHには普通、JAVA_HOMEで設定したフォルダの下のbinが 設定されると思います。 以下をPATHに設定してみてください。 c:\Program Files\Java\jdk1.5.0\bin;.;.\;
お礼
>> c:Files\Java\jdk1.5.0\bin コマンドプロンプトからの貼り付けが失敗していました 上記は >> c:ProgramFiles\Java\jdk1.5.0\bin の誤りでした 一応ご指摘のとおりPATHにc:\Program Files\Java\jdk1.5.0\bin;.;.\;を入力し 再起動して試してみましたが同じエラーがでました
- mako_sea
- ベストアンサー率47% (62/130)
JDKをインストール済みならば やっぱり設定を確認でしょうね。 DOSプロンプトで実行した echo %JAVA_HOME% と echo %PATH% と echo %CLASSPATH% の結果を全て書いていただけませんでしょうか。 記述順序等に問題がある場合もありますので、 できるだけ省略なしでそのまま貼り付けてください。 (フォルダ名に個人名などがあれば伏せ字でかまいません)
お礼
お付き合いをありがとうございます 下記の感じでございます c:\java>echo %java_home% c:\Program Files\Java\jdk1.5.0 c:\java>echo %path% c:Files\Java\jdk1.5.0\bin c:\java>echo %classpath% c:\Program Files\Java\jdk1.5.0\bin;.;C:\Program Files\Java\jdk1.5
- mako_sea
- ベストアンサー率47% (62/130)
大変基本的なことを伺いますが JDKのインストールをすでにされているのですよね? そして「C:\Program Files\Java\jdk1.5.0」は JDKをインストールしたパスということでよろしいですか? たまにフラッシュなどのインストール時に自動ではいったJavaランタイムを使って 一生懸命ソースをコンパイルしようとしているひとがいるので念のため。 (そっちのランタイムにはjavacは同梱されていませんからコンパイルはムリです)
お礼
>JDKのインストールをすでにされているのですよね? >そして「C:\Program Files\Java\jdk1.5.0」は >JDKをインストールしたパスということでよろしいですか? JAVAの入門書のCD-ROMからJDKをインストールしました。 パスはインストールしたパスです。 よろしくお願いします
- osu_neko09
- ベストアンサー率48% (56/115)
変だなあ?バージョンは違うけれど、こちらの環境だとバージョン番号しか出てこないんだけれども。こんなふうに・・・ C:\Program Files\Java\jdk1.6.0_16\bin>javac -version javac 1.6.0_16 C:\Program Files\Java\jdk1.6.0_16\bin> まさかと思うのですが、こうすると結果が変わったりしますか? c: cd "\Program Files\Java\jdk1.5.0\bin" javac.exe -version
お礼
下記のようなエラーになってしまいます。 前はコマンドをソースのないところでやってたのでソースがありませんになってたようですが今回ソースが置いてあるc:\javaでやってみましたがだめでした。 ちなみにJDKのフォルダにソースを移動してやってもだめでした JDKの再インストールもしましたがだめです C:\java>javac -version Exception in thread "main" java.lang.NoClassDefendError: com/sun/tools/javac/Main
- mako_sea
- ベストアンサー率47% (62/130)
PATHの設定に次を追加してみてください。 PATH=今まで書かれていたPATH;.;.\;
お礼
ありがとうございます。 症状に変化ありませんでした
- 1
- 2
お礼
返信が遅くなりました。アドバイスをありがとうございます。 アンインストールの上、インストール先をc:\javaにしてみましたが再起動してもコンパイル、実行共にできませんでした。 また、他にできることがありましたらご教授いただけましたら幸いです