質問: new Sub(); sub.test(); } } ``` ``` public class Sub{ public void test(){ System.out.println( "test" ); } } ``` ### コンパイルエラー jarファイルを参照してコンパイルをしたのですがシンボルが見つかりませんという エラーがでました。 ``` javac -cp .;Test.jar main/Main.java ``` cpの後をいろいろ変えて試してみたのですがどうしてもコンパイルエラーが出てしまいます。 どなたか、ご教示お願いします!!
回答: `Sub`クラスでpackageを指定していないとのことなので、`Sub`クラスはデフォルトパッケージになります。 `Main`クラスとは違うパッケージになるので`Main`クラスから呼び出すには`import`が必要です。 ですが、デフォルトパッケージのクラスは`import`できない仕様です。 簡単に動かすには、`Main`クラスをpackageなしにするか、`Sub`クラスをmain packageにするかです。 もしくは、`Sub`クラスをpackage subにして、Main.javaで`import sub.Sub;`でもいいかも。 **追加調査** 昔のjava(1.2の頃)は質問者のやり方で動いたようです。参考書が古かったのかも。