LoginSignup
0
0

More than 1 year has passed since last update.

【Java】コンパイル時にpackage文に関するエラーが出た場合の対処法

Posted at

環境

  • Microsoft Windows 10.0.22000.856
  • PowerShell 7.2.4
  • Java 18.0.2.1

はじめに

Javaのpackage文を使用した際に、コンパイル( javac Main.java )で エラー: シンボルを見つけられません あるいは error: cannot find symbol のようなエラーが出た場合の対処法について説明する。

ディレクトリ構成
6-1/(カレントディレクトリ)
 ├ Kouhan.java(commentパッケージに所属する)
 ├ Main.java
 └ Zenhan.java(commentパッケージに所属する)
各ファイルの中身

『スッキリわかるJava入門 第3版』の練習問題6-1のコードを一部引用する。

Main.java
import comment.Zenhan;

public class Main {
  public static void main(String[] args) throws Exception {
    Zenhan.doWarusa();
    Zenhan.doTogame();
    comment.Kouhan.callDeae();
    comment.Kouhan.showMondokoro();
  }
}
Zenhan.java
package comment;

public class Zenhan {
  public static void doWarusa() {
    ...
  }
  public static void doTogame() {
    ...
  }
}
Kouhan.java
package comment;

public class Kouhan {
  public static void callDeae() {
    ...
  }
  public static void showMondokoro() throws Exception {
    ...
  }
}

原因

間違ったディレクトリ構成がエラーの原因であった。パッケージに属したクラスファイルが読み込まれるには、パッケージに対応した階層にフォルダを作成しクラスファイルを置く必要がある。

正しいディレクトリ構成
6-1/(カレントディレクトリ)
 ├ comment/
 │  ├ Kouhan.java(commentパッケージに所属する)
 │  └ Zenhan.java(commentパッケージに所属する)
 └ Main.java

これで javac Main.java を実行すると問題なくコンパイルできる。
また、java Main で問題なく実行できる。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0