dポイントプレゼントキャンペーン実施中!

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では正常にコンパイル実行できますので文法の間違いはないものと思われます
何か考えられることはありますでしょうか

A 回答 (12件中1~10件)

恐らくインストール先に問題があります。


Program Files以下にするとProgramとFilesの間のスペースがコンパイル時に悪影響を及ぼしてしまいます。半角スペースのない場所にインストールし直してやってみてください。
    • good
    • 1
この回答へのお礼

返信が遅くなりました。アドバイスをありがとうございます。

アンインストールの上、インストール先をc:\javaにしてみましたが再起動してもコンパイル、実行共にできませんでした。
また、他にできることがありましたらご教授いただけましたら幸いです

お礼日時:2010/05/18 17:51

設定は正しくできているようですね。



ところで、
「java.lang.NoClassDefendError: com/sun/tools/javac/Main」で
ネットを検索したら、次のようなQAがヒットしました。
よく似た問題に直面されており、解決しています。

http://rararahp.cool.ne.jp/cgi-bin/lng/java/java …

C:\Program Files\Java\jdk1.5.0\libの中に
tools.jarはありますでしょうか?
もしなかったら、JDKのインストールに失敗しているのかもしれません。

また、質問内容で
>>他のPCでは正常にコンパイル実行できますので文法の間違いはないものと思われます
とありますから、
正常実行できるPCと状態(各環境変数の値、インストールしたJDKのフォルダ構成等)を
よく比較して確認してみてはどうでしょうか。

この回答への補足

全く同じスタイルにしてみたのですが
改善されないです(泣)

さらにアドバイスがありましたらお願いできれば幸いです

補足日時:2010/04/23 22:26
    • good
    • 0
この回答へのお礼

お付き合いをありがとうございます。
tools.jarは存在を確認しました。
また、上位階層、下位階層なども含め読み取り専用を解除を実施してみましたが改善されませんでした
同階層にsrcというzipファイルがあったので解凍してみましたが改善されませんでした。

言われたとおり比較してみたいとおもいます

お礼日時:2010/04/19 20:34

ちょっと根本的な確認ですが、


java>javac test.java
と入力されているのはないでしょうか?。

コンパイルは
javac test.java
です。

その後、java実行が
java test.class
となります。

ここはOKですか?。
    • good
    • 0
この回答へのお礼

ありがとうございます

それはOKです

入力は javac test.java と入力しています。

実行はいつも java test のように実行していました

お礼日時:2010/04/18 12:08

>>>> 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というファイルが見つかったら、
そのフォルダパスを省力なしで教えてください。
「java にてコンパイルできない。」の回答画像9
    • good
    • 0
この回答へのお礼

上記で設定されていたとしても、
パスに誤りがある(\マークと空白値抜け)のはおわかりになりますか?
それともこれも貼り付けの誤りでしょうか。

単なる貼り付けの誤りでした。
お手数をおかけして申し訳ありません


(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というファイルは発見できませんでした。
設定はすべてのファイルとフォルダを表示するにしています。

お手数をおかけいたしますが以上ご回答させていただきます

お礼日時:2010/04/16 18:39

何処かにjavac.batがいませんか?。


エラーメッセージはjavaプログラム実行時のものだと思います。
どうも辻褄が合いません。
そうでなければ、javacにmain関数がいない(壊れている)ことになります。
    • good
    • 0
この回答へのお礼

javac.batはすべてにドライブを検索してもありませんでした

お礼日時:2010/04/18 12:32

>> 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;.;.\;
    • good
    • 0
この回答へのお礼

>> c:Files\Java\jdk1.5.0\bin

コマンドプロンプトからの貼り付けが失敗していました

上記は

>> c:ProgramFiles\Java\jdk1.5.0\bin

の誤りでした

一応ご指摘のとおりPATHにc:\Program Files\Java\jdk1.5.0\bin;.;.\;を入力し
再起動して試してみましたが同じエラーがでました

お礼日時:2010/04/15 22:28

JDKをインストール済みならば


やっぱり設定を確認でしょうね。

DOSプロンプトで実行した
echo %JAVA_HOME%

echo %PATH%

echo %CLASSPATH%
の結果を全て書いていただけませんでしょうか。
記述順序等に問題がある場合もありますので、
できるだけ省略なしでそのまま貼り付けてください。
(フォルダ名に個人名などがあれば伏せ字でかまいません)
    • good
    • 0
この回答へのお礼

お付き合いをありがとうございます
下記の感じでございます

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

お礼日時:2010/04/15 00:27

大変基本的なことを伺いますが


JDKのインストールをすでにされているのですよね?
そして「C:\Program Files\Java\jdk1.5.0」は
JDKをインストールしたパスということでよろしいですか?

たまにフラッシュなどのインストール時に自動ではいったJavaランタイムを使って
一生懸命ソースをコンパイルしようとしているひとがいるので念のため。
(そっちのランタイムにはjavacは同梱されていませんからコンパイルはムリです)
    • good
    • 0
この回答へのお礼

>JDKのインストールをすでにされているのですよね?
>そして「C:\Program Files\Java\jdk1.5.0」は
>JDKをインストールしたパスということでよろしいですか?

JAVAの入門書のCD-ROMからJDKをインストールしました。

パスはインストールしたパスです。
よろしくお願いします

お礼日時:2010/04/14 16:13

変だなあ?バージョンは違うけれど、こちらの環境だとバージョン番号しか出てこないんだけれども。

こんなふうに・・・

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
    • good
    • 0
この回答へのお礼

下記のようなエラーになってしまいます。
前はコマンドをソースのないところでやってたのでソースがありませんになってたようですが今回ソースが置いてあるc:\javaでやってみましたがだめでした。

ちなみにJDKのフォルダにソースを移動してやってもだめでした
JDKの再インストールもしましたがだめです

C:\java>javac -version
Exception in thread "main" java.lang.NoClassDefendError: com/sun/tools/javac/Main

お礼日時:2010/04/14 16:20

PATHの設定に次を追加してみてください。




PATH=今まで書かれていたPATH;.;.\;
    • good
    • 0
この回答へのお礼

ありがとうございます。

症状に変化ありませんでした

お礼日時:2010/04/14 12:51

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