- 締切済み
Eclipseで実行できてコマンドプロンプトで実行できない
最近Windowsパソコンを購入して、Javaを勉強し始めているものです。昨日まではコマンドプロンプトでもjavaコマンドが実行できていたのですが、本日実行してみると、 Exception in thread "main"java.lang.NOClassDefFoundError: と出てきてしまいます。Eclipseではコンソール画面に結果が表示されるのですが、コマンドプロンプトではエラーになってしまいます。環境変数のPATHの設定も問題ないようなのですがどうしたらよいのでしょうか?
- みんなの回答 (10)
- 専門家の回答
みんなの回答
- kaiu
- ベストアンサー率20% (65/315)
adimアカウントなどでのエラー発生の 事象は分からないので、 お役にたてずすみませんでした。 設定など分かりやすいサイトは http://www.hellohiro.com/appli.htm こちらです。 一方、下記はjava、jsp、eclipseのソリューションが 豊富です。 リファレンスとして是非活用してみてください。 ではでは。
- tubumame
- ベストアンサー率63% (7/11)
こんにちは。 javaコマンドを実行して、 >Exception in thread "main"java.lang.NOClassDefFoundError: が表示されるということは、PATHの設定は問題ないでしょう。このExceptionは実行対象クラスが見つからないといっています。(読んで字のごとし) ですから、CLASSPATHの設定に問題があります。eclipseは、実行対象クラスがどこにあるのかなどは当然eclilpse上で開発しているのですから、特に設定等をしなくても(CLASSPATHを意識しなくても)平気です(eclispeは認識しています)が、コマンドプロンプトでjavaコマンドを実行する際は、実行対象クラスがどこにあるのかをJavaVMに教えてあげる必要があります。その設定がCLASSPATHです。 環境変数CLASSPATHにあらかじめ設定することもできますし、実行時に指定することもできます。(java -cp ...) CLASSPATHが設定されていなくても(環境変数設定、実行時指定をしない)、実行対象クラスのあるディレクトリに移動してjavaコマンドを実行すると実行できる場合もあります。(他のライブラリやjarを使用していないとき) 実際、h-kanegonさんは実行対象クラスが保存されているディレクトリに移動すると実行できるみたいですし。ですから、CLASSPATHを正しく設定する必要があります。昨日までできていたのは、偶然実行対象クラスファイルが保存されているディレクトリにいたから??かな?
- kaiu
- ベストアンサー率20% (65/315)
うーん >本日購入したJavaの入門書で CLASSPATHの設定を知りました。 [環境変数] コマンドプロンプトで java -version と打ったjavaが システム環境変数内(path)に記述されている事 eclipseのウインドウ→設定のインストール済JREの ロケーションパス+\bin ;C:\Program Files\j2sdk1.4.2\bin(←例) コマンドプロンプトで cd javaファイルのある所に移動 コンパイル・実行。 ここまではOKですよね? それでエラーが出るんですよね。 \bin内にjavacもありますよね。 一応もう一度確認してみていただけますか?
- kaiu
- ベストアンサー率20% (65/315)
No.6で実行できれば bin/javac内 でも実行できるか 試してみてください。 OKであればやはり環境変数がおかしいと思うのですが。 もう一度設定し直してみて下さい。
補足
'Exec.bat'は内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 となってしまいます
- kaiu
- ベストアンサー率20% (65/315)
すみません。訂正です。 ではでは クラスファイルは出来ているんですよね? .classのある同ディレクトリに ------------------------------- Exec.bat ------------------------------- ↓ここから!!!!!!!!!! java クラス名 pause ------------------------------- という二行のバッチファイルを作って そのままこれを叩いてみてください。
- kaiu
- ベストアンサー率20% (65/315)
ではでは クラスファイルは出来ているんですよね? .classのある同ディレクトリに ------------------------------- Exec.bat ------------------------------- ↓ここから!!!!!!!!!! java JavaRandom pause ------------------------------- という二行のバッチファイルを作って そのままこれを叩いてみてください。
- LancerVII
- ベストアンサー率51% (1060/2054)
こんばんは。 コマンドプロンプトを起動して 実行したいクラスのあるディレクトリに 移動して、 >java -cp .; 実行するクラス名 と入力してみてください。
補足
>java -cp .; 実行するクラス名 を実行しましたら正しい結果がでました。 この場合どの設定を直したらよいのでしょうか
- kaiu
- ベストアンサー率20% (65/315)
ん? javac は入れてますよね。 補足: javac ファイル名.java でコンパイルしています。その後で java ファイル名 で実行するとエラーになります。
補足
javac ファイル名.java java ファイル名 で実行しています
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 CLASSPATHの設定はどうでしょうか?
補足
本日購入したJavaの入門書で CLASSPATHの設定を知りました。CLASSPATHの設定を削除しても、しなくてもやはりエラーになってしまします。昨日まではエラーにならなかったのですが、昨日から今日にかけて、LANでMacとつないだこと位しか覚えがないのです。ちなみに昨日はCLASSPATHの設定はしませんでした。Eclipseでは問題がないのですが.............
- kaiu
- ベストアンサー率20% (65/315)
コンパイルの仕方がまずいのでは? java クラスファイル名.class[リターン]でなく java クラスファイル名[リターン] にしてますか?
補足
ファイル名.java でコンパイルしています。その後で java ファイル名 で実行するとエラーになります。
補足
何度もありがとうございます。本日Eclipseを削除して、インストールし直したところ、コマンドプロンプトで実行できました。PATHの設定はそのままで、CLASSPATHは削除しました。色々考えたところ、TomcatをAdministrater権限のアカウントでインストールしなかったのが問題なのかと考えています。(EXE形式のインストーラー) 自分のOSはXP homeなのですが、書籍にはAdministrater権限(管理者権限)でインストールする。と書いてありました。そこでセーフモードで立ち上げ、Administrater権限のアカウントでログインしてインストールしました。 当たり前のことなのかもしれませんが、普段のアカウントではインストールされていません。そこでためしに、普段のアカウントでインストールしてしまったのが原因 なのかもしれません。