前提・実現したいこと
現在Javaを勉強しています。
Packageを使いたいのですがコンパイルするとエラーが出てしまします。
解決方法をご教授いただきたいです。
発生している問題・エラーメッセージ
Macのターミナルで
¥ cd /Users/Desktop/java/exer3/tool/tester
¥ javac Main.java
とコンパイルした結果です。
Main.java:2: エラー: パッケージexer3.toolは存在しません import exer3.tool.*; ^ Main.java:9: エラー: シンボルを見つけられません System.out.println("ans␣=␣"+Static.addition(10.1, 9.9)); ^ シンボル: 変数 Static 場所: クラス Main
階層
階層は以下のようになっています。 desktop |ーjava |ーexer3 |ーtool |ーArraySort.java |ーStatic.java |ーtester |ーMain.java
該当のソースコード
Java
1package exer3.tool.tester; 2import exer3.tool.*; 3 4public class Main{ 5public static void main(String argv[]){ 6 7System.out.println("ans␣=␣"+Static.addition(10.1, 9.9)); 8 } 9}
Java
1package exer3.tool; 2 3public class Static{ 4public static double addition(double a, double b){ 5return a+b; 6 } 7}
Java
1public class ArraySort{ 2public static void main(String args[]){ 3 4int[] rand_vari; 5int[] rand_vari2; 6rand_vari = new int[10]; 7rand_vari2 = new int[10]; 8for (int i = 0 ; i < 10 ; i++ ) { 9 rand_vari[i] = new java.util.Random().nextInt(100) + 1; 10 } 11 12System.out.println("** rand_vari"); 13System.out.println(Arrays.toString(rand_vari)); 14 15Arrays.sort(rand_vari); 16 17 18 19System.out.println("** rand_vari"); 20 21for (int i = 0;i < 10; i++) { 22 rand_vari2[i] = rand_vari[9-i]; 23} 24 25System.out.println("** ソート後の rand_vari"); 26System.out.println(Arrays.toString(rand_vari2)); 27 } 28} 29
試したこと
コンパイルする際の表記を変えたりファイルの階層を変えてみたりしましたがうまく動きませんでした。
すべてのファイルを同じ階層で作りpackageを使わずに動かした場合はうまく動作しました。
マークダウン記法を使うとき、コードは
```Java
public class Main{
public static void main(String argv[]){
}
}
```
のようにします。「```プログラミング言語名」です。
エラー自体はたぶん、ディレクトリとファイルの配置に則してクラスパスの設定が正しくされていないせいだと思いますが、EclipseなどのIDEを使っているのか、何らかのターミナルのコマンドラインでjavacなどを使っているのかなど、コンパイル時の状況を詳細に質問文中に示すと回答を得られやすいと思います。
適切なアドバイスありがとうございます。
アドバイスを参考に修正させていただきました。
回答1件
あなたの回答
tips
プレビュー