###前提・実現したいこと
他パッケージのクラスを使いたい
具体的には、パッケージAにあるMainクラスにて、パッケージBにあるSubクラスを呼び出したいです。
###発生している問題・エラーメッセージ
エラー : パッケージBは存在しません
###該当のソースコード
src\A\Main.java
java
1package A; 2 3 4public class Main{ 5 6 public static void main(String[] args){ 7 8 B.Sub sub = new B.Sub(); 9 sub.display(); 10 } 11}
src\B\Main.java
java
1package B; 2 3public class Sub{ 4 5 public void display(){ 6 System.out.println("こんにちわ"); 7 } 8}
###コンパイルの仕方
カレントディレクトリが、srcの一つ上の状態で、もう一つのディレクトリclassにコンパイルしました。
つまり、今見えてるディレクトリがsrcディレクトリと、classディレクトリの状態で、
srcディレクトリ内にはAディレクトリとBディレクトリが、
classディレクトリ内には何も入っていない状態で、
javac -d class src\A\Main.java
というのを、コマンドプロンプトで打ち込んだところ、
エラー : パッケージBは存在しません
となりました。
javac -d class src\B\Sub.java
とやったところ、問題なくコンパイルできました。
その後もう一度
javac -d class src\A\Main.java
とやりましたが、変わらずエラーが出ているところです。
###他にも試したこと
それぞれのパッケージ宣言をC.A C.Bにして、ディレクトリも、src\C\A\Main.java src\C\B\Sub.javaと配置して
javac -d class src\C\A\Main.javaを実行しても同じエラーが出てしまいました。
###聞きたいこと
どうやったら、パッケージAにあるメインクラスからパッケージBにあるサブクラスを呼べるのか
→階層構造やパッケージ宣言の仕方を変えればいいのか、それとも呼び出し方を変えればいいのか?それともコンパイルの仕方に問題があるのか・・・?
すごく初歩な質問なのですが教えていただけると助かります。
ネットで少し調べたのですが、"完全に書かなければいけない"とサラッと書いてあるところばかりで
自分の読解力では結局何がいけないのかわかりませんでした。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/19 15:19