はじめに (対象読者・この記事でわかること)
この記事は、Javaのプログラミング初心者から中級者、特にEclipse IDE を使って開発したコードを コマンドプロンプト (cmd) で実行したいと考えている方を対象としています。
Eclipse 内の「Run」ボタンだけでなく、手動でコンパイルしたり、実行時のクラスパスを自分で設定したりしたいシーンは多く、CI/CD パイプライン構築やサーバー上での運用時に必須のスキルです。
本記事を読むことで、以下のことができるようになります。
- Eclipse で作成した
.javaファイルをjavacコマンドでコンパイルする方法 javaコマンドでクラスパスや実行ディレクトリを指定し、cmd からプログラムを起動する手順- 実際に遭遇しやすいエラー(パッケージパスの不一致、環境変数の設定ミス)への対処法
執筆の背景は、読者の皆さんが「IDE だけではなく、ターミナルでも同じコードを動かしたい」というニーズを持つことが多く、実務でのデバッグや本番環境へのデプロイ時に不安を感じないようにしたいという思いからです。
前提知識
この記事を読み進める上で、以下の知識があるとスムーズです。
- Java の基本的な文法と
public static void mainの役割 - Eclipse の基本的なプロジェクト作成手順(ワークスペース、パッケージの作成)
- Windows のコマンドプロンプトの基本操作(cd、dir、環境変数の確認など)
Eclipse で作成した Java プログラムを CMD で実行する概要
Eclipse は内部的に javac(Java コンパイラ)と java(ランタイム)を呼び出してプログラムを実行しています。IDE の GUI で「Run」すれば自動的にビルドと実行が完了しますが、コマンドラインで手動実行する場合は次の流れを踏む必要があります。
- ソースコードの保存場所を把握
デフォルトではプロジェクトルートのsrcディレクトリ以下に.javaが配置されます。 - コンパイル先ディレクトリ(bin)へのパスを確認
Eclipse の「プロジェクト → プロパティ → Java Build Path → ソース」からbinフォルダがビルド出力先であることを確認します。 - コマンドプロンプトから
javacでコンパイル
必要に応じてクラスパスやパッケージ構造を考慮しながら、javac -d bin src\package\MyClass.javaのように指定します。 javaコマンドで実行
java -cp bin package.MyClassでプログラムが起動します。
この手順を正しく行うことで、IDE がなくても同一のバイナリを実行でき、スクリプト化や自動テストの基礎が作れます。
実際の手順とコード例
以下では、具体的なプロジェクト構成とともに、ステップバイステップでコマンドを示します。
ステップ1:プロジェクトの作成とサンプルコード
- Eclipse で新規 Java プロジェクト HelloEclipse を作成。
src配下にパッケージcom.exampleを作り、その中にMain.javaを作成。
Javapackage com.example; public class Main { public static void main(String[] args) { System.out.println("Hello, Eclipse + CMD!"); } }
- ファイルを保存すると、Eclipse が自動的に
bin/com/example/Main.classを生成します。
ステップ2:コマンドプロンプトでのコンパイル(手動の場合)
Eclipse の自動ビルドを無効にした場合や、外部のエディタで書いたコードを手動でビルドしたいときは、次のように javac を使用します。
Batrem 作業ディレクトリをプロジェクトルートに移動 cd C:\Users\user\workspace\HelloEclipse rem src のパスを指定してコンパイル、-d で出力先を bin に設定 javac -d bin src\com\example\Main.java
このコマンドでエラーがなければ、bin\com\example\Main.class が生成されます。
ステップ3:cmd での実行
コンパイルが完了したら、次のコマンドでプログラムを実行します。
Batrem カレントディレクトリはプロジェクトのルートのままで OK java -cp bin com.example.Main
実行結果は以下の通りです。
Hello, Eclipse + CMD!
ハマった点やエラー解決
1. 「ClassNotFoundException」や「NoClassDefFoundError」が出た
原因:-cp(クラスパス)に bin が正しく指定されていない、もしくはパッケージ名が間違っている。
対策:
java -cp bin com.example.Mainのように、完全修飾名(パッケージ込み)でクラスを指定する。binディレクトリが相対パスで解決できない場合は、絶対パスC:\Users\user\workspace\HelloEclipse\binを使用する。
2. 「javac: file not found: src\com\example\Main.java」のエラー
原因:Windows のコマンドプロンプトでパス区切りが \ なのに、Eclipse のプロジェクト構成とズレが生じた。
対策:
cdでプロジェクトルートに正しく移動したか確認する。src\com\example\Main.javaのパスが実際に存在するかdir src\com\exampleでチェックする。
3. JDK がパスに通っていない
原因:javac や java がコマンドとして認識されない。
対策:
- 環境変数
PATHに JDK のbinディレクトリ(例:C:\Program Files\Java\jdk-21\bin)を追加する。 java -versionでバージョンが表示されれば設定完了。
解決策まとめ
| エラー | 原因 | 解決策 |
|---|---|---|
| ClassNotFoundException / NoClassDefFoundError | クラスパス指定ミス、完全修飾名間違い | -cp bin を正しく設定、パッケージ名をフルで記述 |
| javac ファイルが見つからない | 作業ディレクトリ違い、パスミス | cd でプロジェクトルートに移動、パスを dir で確認 |
| javac / java が認識されない | JDK が PATH に未設定 | 環境変数 PATH に JDK の bin を追加し、java -version で検証 |
まとめ
本記事では、Eclipse で作成した Java プログラムをコマンドプロンプトから手動でコンパイル・実行する手順 を解説しました。
- プロジェクト構成の把握(src と bin の位置)
- javac と java の正しいコマンドオプション(
-d、-cp、完全修飾名) - 典型的なエラーとその対処法(クラスパス、パス設定、環境変数)
これらを身につけることで、IDE に依存しない開発フローが構築でき、CI/CD パイプラインやサーバー上でのデプロイが格段に楽になります。次回は、バッチファイルや PowerShell スクリプトでビルド・実行を自動化する方法、さらには JAR ファイル化と java -jar 実行までの流れを紹介する予定です。
参考資料
- Oracle Java SE Documentation – javac コマンド
- Oracle Java SE Documentation – java コマンド
- Eclipse IDE User Guide – Project Build Path
- 山田 太郎 (2022) 『スッキリわかる Java入門』 技術評論社
