50歳にてjavaを勉強しようとしているものです。
javaの本より例題を作成してみたのですが、うまくいきません。
javaをインストールしてjavacが正常でいざ実行した際、以下のメッセージが表示されました。何の意味かさっぱりわかりません。このサイトで質問するレベルではないかと思いますが、アドバイスいただければ幸いです。
作成したプログラムは
class hello {
public static void main(String[] args) {
System.out.println("こんにちは");
}
}
javac ではエラー表示なし
→
C:\javabook\part1>javac Hello.java
C:\javabook\part1>
これを実行すると、
C:\javabook\part1>java Hello
Exception in thread "main" java.lang.NoClassDefFoundError: Hello (wrong name: he
llo)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
1)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: Hello. Program will exit.
と表示されます。
何がエラーとなっているのでしょうか?
> Could not find the main class: Hello. Program will exit.
『メインのクラス「Hello」が見付かりません。プログラムを終了します』
と書いてあります。
> java Hello
と実行したので、「 Helloクラスのmainメソッド」を実行しようとしてエラーになりました。
java hello
と、ファイルに記述した通りにすれば実行できるはずです。
Windowsのファイル名は大文字小文字を区別しませんが、Javaのクラス名(他、変数名等々)は区別します。
ファイル名もクラス名と表記を揃えるくせをつけておいた方がよいでしょう。
それから、この先もエラーメッセージはちょくちょく目にすることとなります。
英語ですが、文学のような抽象的だったり比喩的な表現では無いので、難しくはありません。
まずは辞書を片手でもいいので、なにが書いてあるか読んで、何が起ったか考えてみることをお勧めします。
お礼
ご指摘いただいたとおりで大文字で正常に動作しました。 ありがとうございました。