Javaのpackageとは?フォルダとの関係を初心者向けに解説

最終更新日

Schoo Java入門 初級 講座イメージ

本記事は、Schooの「Java入門 初級【2026年版】」第1回「Javaプログラムの書き方と開発環境構築」を学んだあとに、さらに理解を深めたい方向けのステップアップ学習記事です。

ただし、Schooを受講していない方でも、Javaの基本を学び始めたばかりであれば読み進められる内容にしています。

Schoo コースページ:Java入門 初級【2026年版】

Javaのpackageでつまずきやすい理由

Javaを学び始めると、最初のコードにいきなりpackage lesson01;のような行が出てきます。画面に文字を表示したいだけなのに、なぜ「パッケージ」というものを書くのか分かりにくいところです。

結論からいうと、packageは「このクラスがどのグループに所属しているか」を表す名前です。Eclipseでは、パッケージはフォルダのように見えます。つまり、package lesson01;と書いたクラスは、基本的にlesson01という場所に置く必要があります。

まず動く最小コード

第1回で扱う最小のJavaプログラムを見てみます。

ファイル名:FirstProgram.java

package lesson01;

public class FirstProgram {
    public static void main(String[] args) {
        System.out.println("はじめてのJava!");
    }
}

実行結果

はじめてのJava!

ここで注目したいのは、1行目のpackage lesson01;です。これは「このFirstProgramクラスは、lesson01パッケージに入っています」という意味です。

packageとフォルダの関係

EclipseでJavaプロジェクトを作ると、多くの場合、ソースコードはsrcの下に置かれます。そこにlesson01パッケージを作ると、イメージとしては次のような構成になります。

Java01
└─ src
   └─ lesson01
      └─ FirstProgram.java

このとき、ファイルの先頭に書くパッケージ名は次のように対応します。

package lesson01;

フォルダのように見えるlesson01と、コード先頭のpackage lesson01;は別々のものではありません。Eclipseの画面上の場所と、Javaコード内の所属名が対応していると考えると理解しやすくなります。

なぜpackageを書くのか

小さなプログラムだけなら、パッケージがなくても動く場合があります。ただ、学習が進むとクラスが増えます。クラスが増えたときに、すべてを同じ場所に置くと探しにくくなります。

  • lesson01:第1回で使うプログラム
  • lesson02:第2回で使うプログラム
  • lesson01ex:第1回の演習用プログラム

このように分けておくと、どの授業・どの練習で使うコードなのかを整理しやすくなります。packageは、プログラムを片づけるための名前でもあります。

少し変更してみる:lesson02に置く場合

もし同じFirstProgram.javalesson02パッケージに置くなら、先頭のパッケージ名も変わります。

ファイル名:FirstProgram.java

package lesson02;

public class FirstProgram {
    public static void main(String[] args) {
        System.out.println("lesson02のプログラムです");
    }
}

実行結果

lesson02のプログラムです

この場合は、Eclipse上でもlesson02パッケージの中にファイルを置くのが自然です。コードの先頭だけを変えて、ファイルの置き場所がlesson01のままだと、Eclipseがエラーとして知らせることがあります。

よくあるエラー:package名と場所が合っていない

たとえば、lesson01パッケージの中にあるファイルなのに、コードではlesson02と書いてしまうケースです。

package lesson02;

public class FirstProgram {
    public static void main(String[] args) {
        System.out.println("はじめてのJava!");
    }
}

エラーメッセージ例

The declared package "lesson02" does not match the expected package "lesson01"

このエラーは、「コードに書かれたパッケージ名」と「ファイルが置かれている場所」が合っていない、という意味です。まず見るべき場所は2つです。

  • ファイルの先頭にあるpackageの行
  • Eclipseのパッケージ・エクスプローラーで、そのファイルがどのパッケージに入っているか

よくあるエラー:packageの書き方が崩れている

第1回のエラー修正では、次のような間違いも出てきます。

packagelesson01

正しくは、packagelesson01の間に半角スペースを入れ、最後にセミコロンを書きます。

package lesson01;

Javaでは、キーワード、名前、記号の位置が重要です。特に最初のうちは、1文字ずつ見比べる習慣をつけるとエラーを直しやすくなります。

自分で試す練習

  1. Eclipseでlesson01パッケージを作成する
  2. FirstProgram.javaを作成し、先頭にpackage lesson01;と書く
  3. プログラムを実行し、コンソールに文字が出ることを確認する
  4. わざとpackage lesson02;に変えて、エラーを確認する
  5. もう一度package lesson01;に戻して、エラーが消えることを確認する

確認問題

  1. package lesson01;は、何を表していますか。
  2. src/lesson01/FirstProgram.javaに置いたファイルの先頭には、どのpackage文を書くのが自然ですか。
  3. The declared package "lesson02" does not match the expected package "lesson01" と表示されたら、まず何を確認しますか。
  4. packagelesson01が間違いである理由を、半角スペースとセミコロンに注目して説明してください。

演習後の確認:こちらのページを使って、自分で考えた内容を見直せます。先に手を動かしてから確認することをおすすめします。

あわせて読みたい関連記事

まとめ

packageは、Javaのクラスを整理するための所属名です。Eclipseではパッケージがフォルダのように見えるため、コード先頭のpackage lesson01;と、ファイルが置かれているlesson01パッケージの対応を意識すると理解しやすくなります。

エラーが出たときは、まずpackage文とファイルの置き場所が合っているかを確認しましょう。ここを押さえると、第1回以降のサンプルプログラムも読みやすくなります。

シェアする