javaですいません。一番簡単なサンプル Hello World すら実行できなくなった。
なぜかうまくいきません。今日一日悩みましたが解決できませんでした。
Windowsも再起動してみたのですが、だめでした。
どこが悪いのでしょうか?
ソースコードは Hello.java
コマンドプロンプトにてコンパイル
javac Hello.java
これはエラーなし。問題なし。
次に実行。
java Hello
と実行すると、
エラー:メイン・クラスHelloを検出およびロードできませんでした
原因:java.lang.ClassNotFoundException: Hello
とエラーがでます。
ディレクトリ操作は行っておらずファイル構造は
java\javabook\part2/var/Hello.java
java\javabook\part2/var/Hello.class
となっており、コマンdプロンプトは
java\javabook\part2/var
にあります。
どうすればいいのでしょうか?
java すいません Hello world
Re: java すいません Hello world
提示されたコードを実行してみましたが、Helloと表示されるだけでした。見たところもエラーらしきところは見当たらないので、環境によるものだとも考えられます
使用しているJavaのバージョンは何ですか?
そうでなければ、全文表記してくださるともしかしたら対処できるかもしれません。
以下私が思いつく範囲の対処法です。
再コンパイルしても同じメッセージが表示されますか?
ファイル名に全角文字などは入っていませんか?
新規ファイルを作って同じソースコードで実行しても同様のエラーが出ますか?
ファイルの文字コードを変更しても同じエラーが出ますか?
使用しているJavaのバージョンは何ですか?
エラー文はこれですべてでしょうか?エラー:メイン・クラスHelloを検出およびロードできませんでした
原因:java.lang.ClassNotFoundException: Hello
とエラーがでます。
そうでなければ、全文表記してくださるともしかしたら対処できるかもしれません。
以下私が思いつく範囲の対処法です。
再コンパイルしても同じメッセージが表示されますか?
ファイル名に全角文字などは入っていませんか?
新規ファイルを作って同じソースコードで実行しても同様のエラーが出ますか?
ファイルの文字コードを変更しても同じエラーが出ますか?
Re: java すいません Hello world
java -classpath . Hello でどうなりますか?
echo %CLASSPATH% で何と表示されますか?
echo %CLASSPATH% で何と表示されますか?
Re: java すいません Hello world
Javaは最近、セキュリティ上の問題から、カレントディレクトリのclassを無条件でロードしないようになりました。
正確には、デフォルトのクラスパスに.(カレントディレクトリ)を含まない仕様に変更されました。
カレントディレクトリにあるclassファイルをロードしたい場合、-cpオプションでクラスパスを明示してください。
java -cp . Hello
正確には、デフォルトのクラスパスに.(カレントディレクトリ)を含まない仕様に変更されました。
カレントディレクトリにあるclassファイルをロードしたい場合、-cpオプションでクラスパスを明示してください。
java -cp . Hello
Re: java すいません Hello world
>>にほさん
文字コードまで調べたのですがダメでした。
なので、ここで質問させていただいてます。
javaのバージョンは
java version "10.0.1" 2018-04-17 です。最新(多分)です。
====================================================================
>>かずまさん
>>java -classpath . Hello でどうなりますか?
Helloと表示されました。
>>echo %CLASSPATH% で何と表示されますか?
c:\User\user\Documents\java\apache-tomcat-8.5.32\lib\servlet-api.jar
です。
サーブレットやってました。
=====================================================================
>>ISLeさん
java -cp . Hello
でうまく Hello と表示されました。
javaが最新のため、ISLeさん、かずまさんがおっしゃるとおり、
クラスパスを指定するとうまく動作しました。
そんな仕様変更があったんですね。知らなかった。
解決しました。ありがとうございました。
文字コードまで調べたのですがダメでした。
なので、ここで質問させていただいてます。
javaのバージョンは
java version "10.0.1" 2018-04-17 です。最新(多分)です。
====================================================================
>>かずまさん
>>java -classpath . Hello でどうなりますか?
Helloと表示されました。
>>echo %CLASSPATH% で何と表示されますか?
c:\User\user\Documents\java\apache-tomcat-8.5.32\lib\servlet-api.jar
です。
サーブレットやってました。
=====================================================================
>>ISLeさん
java -cp . Hello
でうまく Hello と表示されました。
javaが最新のため、ISLeさん、かずまさんがおっしゃるとおり、
クラスパスを指定するとうまく動作しました。
そんな仕様変更があったんですね。知らなかった。
解決しました。ありがとうございました。
オフトピック
解決ボタンどこいったのかな?・・・