この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
更新日時:2026-05-16 17:19:22
タイトル: パッケージ~は存在しません
エラー内容
エラー: パッケージ xxx.yyy は存在しません
error: package xxx.yyy does not exist |
発生条件
- Java のコンパイル (
javac) 時、または Eclipse などの IDE 内ビルド時に発生
import xxx.yyy.SomeClass; でインポートしているパッケージが クラスパス上に見つからない状態
- Maven / Gradle ビルドでは依存解決に失敗したケースで頻発
主な原因
| 原因 | 解説 |
| ビルドパス (クラスパス) 未設定 | 外部jar や同梱ライブラリが参照に含まれていない |
| jar ファイル自体が無い | lib/ や Maven Local リポジトリに該当 jar が存在しない |
| パッケージ名のタイプミス | import org.apache.commn.lang.* など (commons の綴り違い等) |
| JDKバージョン違い | 新しい API を古い JDK で参照 (例: java.nio.file.Files を Java 6 で利用) |
| Mavenの依存記述漏れ | pom.xml に該当 <dependency> が無い |
| scope が test / provided | 本番ビルド時には参照できない |
| モジュールシステム (JPMS) 未エクスポート | Java 9+ で module-info.java の requires が抜けている |
| Eclipse の Java Build Path 破損 | プロジェクト→プロパティから再構成が必要 |
対処手順
1. パッケージ名のタイプミスを疑う
まずインポート文の綴りを確認します。org.apache.commons.lang3 など、ハイフンや末尾の数字が正確かをチェック。
2. 該当ライブラリの jar / 依存の有無を確認
- Maven:
mvn dependency:tree でツリーを表示し、該当パッケージが含まれているか確認
- Gradle:
./gradlew dependencies で確認
- Eclipse: プロジェクト→プロパティ→Javaのビルド・パス→ライブラリーで該当 jar の有無を確認
- 素の javac:
javac -cp lib/*.jar Foo.java のように -cp 指定
3. ビルドパス / 依存を追加
| ビルド方法 | 追加方法 |
| Maven | pom.xml の <dependencies> に該当を追加し mvn clean install |
| Gradle | build.gradle の dependencies { implementation '...' } に追加 |
| Eclipse 直接 | プロジェクト→プロパティ→Javaのビルド・パス→ライブラリー→外部 JAR の追加 |
| 素の javac | -cp "lib/*" でクラスパスを通す |
4. クリーン&リビルド
- Maven:
mvn clean compile
- Gradle:
./gradlew clean build
- Eclipse: プロジェクト→クリーン → 全リビルド
5. JDKバージョンの整合性確認
- Maven の
maven-compiler-plugin の source / target 指定
- Eclipse: プロジェクト→プロパティ→Java コンパイラーの準拠レベル
- OS 環境変数
JAVA_HOME と PATH が想定したバージョンを指しているか
例: Maven で commons-lang3 が見つからない場合
|
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.14.0</version>
</dependency>
|
調査のヒント
- エラーログに表示されるパッケージ名でクラスを Maven Central (
search.maven.org) 等で検索すると、所属 jar が特定できる
- CI で出る場合はローカルでは通っているかを比較 (環境差を切り分け)
javac -verbose でどのクラスパスが使われているか確認可能
関連