- ベストアンサー
packageについて
以下のことでどうしてもエラーが出てしまうのですが、 package jp.co.se.app.test.a; public class a1{ //メソッド public void go(){ System.out.println("hoge"); } } package jp.co.se.app.test.b; import jp.co.se.app.test.a.a1; public class main{ public static void main(String [] args){ a1 aa = new a1(); aa.go(); } } a1クラスはもちろんコンパイルできますが、 mainクラスでは、シンボルを解釈できません:a1 と出てしまいます。 c:\jp.co.se.app.test.b>javac -classpath c:\jp main.java なにが原因なんでしょうか? どなたか教えてください!
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
C:\>java -cp c:\ jp.co.se.app.test.b.main でいけると思います。だいぶ昔にやったので、間違ってるかもしれません。 考え方としては、JAVA実行マシンにc:\のクラスパスを通してやれば、後はパッケージ階層+実行クラスでよいと思いました。 コンパイルの時は、Javaファイルのところまで、作業ディレクトリを持っていく必要がありますが、実行時は、クラスパスさえ通してあれば、パッケージ階層+実行クラスでできます。作業ディレクトリがどこであっても良いです。
その他の回答 (3)
- yuji
- ベストアンサー率37% (64/169)
回答とは直接関係ありませんが、 クラス名の先頭は英大文字にするようにしましょう。
お礼
勉強になりました! ありがとうございます!
- ranx
- ベストアンサー率24% (357/1463)
> クラスパスの通し方を教えてください No.2 さんの回答で -cp c:\ と書かれてある箇所がクラスパスを指定している部分です。 なお、-cp は省略形で、-classpath と同じです。
お礼
そうだったんですね・・・。 ありがとうございます!
- liar_adan
- ベストアンサー率48% (730/1515)
>c:\jp.co.se.app.test.b>javac -classpath c:\jp main.java を >c:\jp\co\se\app\test\b>javac -classpath c:\ main.java としてもだめでしょうか?
補足
すみません、>c:\jp.co.se.app.test.b>は書き間違いで c:\jp\co\se\app\test\b>になってましたが、 javac -classpath c:\ main.javaでコンパイルするとうまいくいきました! けど・・・、実行はどう指定してやればいいのでしょうか・・・?
補足
すみません・・・、クラスパスの通し方を教えてください・・・。