クラス名とファイル名を別名にしコンパイル→実行した結果、以下のエラーがでました。
なぜ、エラーがでるのか教えてください。
また。どなたか一行づつ以下のエラー内容を解説ができる方はおられませんか?
ご教授ください。
※エラーの解説は一部でも構いません。
Exception in thread "main" java.lang.NoClassDefFoundError: classHelloWor
Caused by: java.lang.ClassNotFoundException: classHelloWorld
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
→?
Could not find the main class: classHelloWorld. Program will exit.
→ classHelloworldを見つけることができない?
回答 No.4 の続きです。
1.
ネイティブコードとNative Methodは別物です。
2.
ネイティブコードとはコンピュータが直接実行可能な機械語です。
ネイティブコードはCPU仕様に依存しています。
3.
ネイティブコードを実行する方式は以下の2通りがあります。
《方式 X 》
JavaVMがバイトコードをネイティブコードに変換して実行する。
→Javaのメソッド
《方式 Y 》
コンパイラがC言語で書かれたソースコードからネイティブコードに変換する。
JavaVMがこのネイティブコードを呼び出す。
→Native Method
publicクラスはファイル名とクラス名を同じにしないといけません。
(コンパイラおよびjavaの仕様です。ファイル名のクラスを探しにいって
見つかりませんと言っています)