【Java】packageがimportできないときの対処方法

Javaで package が import できない ときは、主に次のような原因が考えられます。それぞれの対処方法を丁寧に解説します。

✅ よくある原因とその対処法

✅ 1. クラスパス(classpath)が通っていない

🔍 原因:

import com.example.util.MyUtil; と書いても、そのクラスが クラスパスに含まれていない と、コンパイル・実行時に見つかりません。

💡 解決方法:

  • コンパイル時に -cp(または -classpath)で明示的にパスを指定します。

bash
javac -cp ./src src/com/example/app/Main.java
java -cp ./src com.example.app.Main
  • .jar ファイルを使う場合:

bash
javac -cp lib/library.jar Main.java
java -cp .:lib/library.jar Main  # Windowsでは `.;lib/library.jar`

✅ 2. ディレクトリ構造と package 宣言が一致していない

🔍 原因:

ファイルの場所と package 宣言が矛盾していると、import に失敗します。

✅ 正しい構成例:

css
src/
└── com/
    └── example/
        └── util/
            └── MyUtil.java
java
// MyUtil.java の先頭
package com.example.util;
java
// Main.java
import com.example.util.MyUtil;

💡 ルール:package の階層とディレクトリ構成が一致している必要があります。

✅ 3. タイポ(スペルミス)や大文字小文字のミス

  • Javaは 大文字・小文字を区別します。

  • import com.example.Util;import com.example.util; は別物。

🛠️ クラス名・パッケージ名はよく確認しましょう。


✅ 4. モジュール化(Java 9以降)による制限

🔍 原因:

Java 9以降の モジュールシステム(module-info.java) を使っている場合、他モジュールのパッケージが exports されていないと import できません。

💡 解決:

  • モジュールに exports com.example.util; を追加

  • requires モジュール名; を利用側に追加


✅ 5. IDE(Eclipse/IntelliJ)側の問題

💡 解決方法:

  • ビルドパスが正しく設定されているか確認

  • プロジェクトの再ビルド(Eclipseでは Project > Clean

  • ライブラリの参照先が正しいかチェック(右クリック > Build Path > Configure)


✅ トラブルシューティングまとめ

症状 チェックポイント
package does not exist クラスパス、ディレクトリ構成、スペル
cannot find symbol import先のクラスが存在するか
クラスはあるのに認識されない javac での -cp 指定、IDEのビルドパス
module not found Java 9以降なら module-info.java を確認

管理人
Javaの記事の一覧はJava にまとめてあります

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP