- 732 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 14:25:56 ]
- まず訂正を。自分の書き込みを見てびっくりしたのですが、
>ディレクトリ直下のHelloWorld2.classを直接指定するのと >CLASSPATHの下の\test\HelloWorld2.javaを指定するのとで の2行目は\test\HelloWorld2.classのミスタイプです。 >>729 回答ありがとうございます。 .classファイルを探すのではなく、FQCNでクラスを探しに行くから test.HelloWorld2は存在するけれどHelloWorld2なんていう物は 存在しないという事ですね。 >パッケージ名はclassファイル自体に埋め込まれるので、 >HelloWorld2.classをC:\Source\javaに移動しても、 >HelloWorld2のパッケージを移動したことにはならない。 これについてですが、試しにソースはいじらずに.javaファイルを C:\Source\Javaへ移動し、Message→HelloWorld2の順にコンパイルしたところ、 Messageはコンパイルできたものの、HelloWorld2はパッケージotamesiが 見つけられずにコンパイルできませんでした。 また、普通にコンパイルしたHelloWorld2.classをC:\Source\Javaに移動して java test.HelloWorld2 してみたら Exception in thread "main" java.lang.NoClassDefFoundError: test/HelloWorld2 が出てしまいました。 「パッケージを移動したことにはならない」というのは 「単純にフォルダ移動してもパッケージ情報(?)は変わらないから パッケージと同名のフォルダに入れておかなければならない」 という意味でしょうか?
|

|