コマンドラインから Java アプリケーションをコンパイルして実行する方法

JavaBeginner
オンラインで実践に進む

はじめに

Java は、エンタープライズソフトウェアからモバイルアプリまで、幅広いアプリケーションで使用される強力なプログラミング言語です。このチュートリアルでは、コマンドラインから Java アプリケーションをコンパイルして実行するプロセスを探索します。これは、すべての Java 開発者にとって重要なスキルです。

Java プログラミング入門

Java は、1995 年に Sun Microsystems によって最初にリリースされた、人気が高く広く使用されているプログラミング言語です。これはオブジェクト指向でクラスベースの言語で、プラットフォーム非依存性を持つように設計されています。つまり、Java プログラムは Windows、macOS、Linux などのさまざまなオペレーティングシステムで実行できます。

Java の重要な特徴の 1 つは、「一度書けばどこでも動く」(Write Once, Run Anywhere: WORA)という哲学です。これは、Java プログラムをプラットフォーム非依存のバイトコードにコンパイルでき、それがどの Java 仮想マシン(Java Virtual Machine: JVM)上でも実行できることを意味します。これにより、Java は非常に移植性が高く汎用性のある言語になっています。開発者はコードを一度書けば、複数のプラットフォームに再コード化や再コンパイルすることなくデプロイできます。

Java は、デスクトップアプリケーションや Web アプリケーションからモバイルアプリやエンタープライズレベルのソフトウェアまで、幅広いアプリケーションで使用されています。特にエンタープライズソフトウェア開発コミュニティで人気が高く、大規模で使命クリティカルなアプリケーションの構築に使用されています。

Java プログラミングを始めるには、システムに Java 開発キット(Java Development Kit: JDK)をインストールする必要があります。JDK には、Java ソースコードをバイトコードに変換するための Java コンパイラと、Java プログラムを実行するための Java ランタイム環境(Java Runtime Environment: JRE)が含まれています。

JDK をインストールしたら、テキストエディタや Eclipse や IntelliJ IDEA などの統合開発環境(Integrated Development Environment: IDE)を使用して、Java コードの作成とコンパイルを開始できます。

graph TD
    A[Java Development Kit (JDK)] --> B[Java Compiler]
    A --> C[Java Runtime Environment (JRE)]
    B --> D[Java Bytecode]
    D --> C[Java Runtime Environment (JRE)]
    C --> E[Java Application]

次のセクションでは、コマンドラインを使用して Java ソースコードをコンパイルする方法を探ります。

Java ソースコードのコンパイル

Java ソースコードをコンパイルするには、Java 開発キット(Java Development Kit: JDK)に含まれる Java コンパイラを使用できます。Java コンパイラは、Java ソースコードをバイトコードに変換するコマンドラインツールで、そのバイトコードは Java ランタイム環境(Java Runtime Environment: JRE)によって実行できます。

単一の Java ファイルのコンパイル

単一の Java ファイルをコンパイルするには、javac コマンドの後に Java ファイルの名前を指定します。たとえば、HelloWorld.java という名前のファイルをコンパイルするには、ターミナルで次のコマンドを実行します。

javac HelloWorld.java

これにより、ソースファイルと同じディレクトリに HelloWorld.class という名前のコンパイル済みクラスファイルが作成されます。

複数の Java ファイルのコンパイル

Java アプリケーションが複数のソースファイルで構成されている場合、javac コマンドの後にファイル名を列挙することで、一度にすべてのファイルをコンパイルできます。たとえば:

javac HelloWorld.java AnotherClass.java MyClass.java

これにより、3 つの Java ファイルがすべてコンパイルされ、対応するクラスファイルが作成されます。

サブディレクトリ内の Java ファイルのコンパイル

Java ソースファイルがディレクトリ構造で整理されている場合でも、javac コマンドを使用してコンパイルできます。たとえば、サブディレクトリに com/example/MyClass.java という名前のファイルがある場合、次のコマンドでコンパイルできます。

javac com/example/MyClass.java

これにより、com/example ディレクトリに MyClass.class ファイルが作成されます。

graph TD
    A[Java Source File] --> B[Java Compiler (javac)]
    B --> C[Java Bytecode (.class)]

次のセクションでは、コマンドラインから Java アプリケーションを実行する方法を探ります。

Java アプリケーションの実行

Java ソースコードをバイトコードにコンパイルした後、java コマンドを使用して Java アプリケーションを実行できます。java コマンドは、Java 仮想マシン(Java Virtual Machine: JVM)を起動し、コンパイルされた Java バイトコードを実行するために使用されます。

単一の Java クラスの実行

単一の Java クラスを実行するには、java コマンドの後に完全修飾クラス名(該当する場合はパッケージ名を含む)を指定します。たとえば、デフォルトパッケージにある HelloWorld という名前のクラスを実行するには、次のコマンドを使用します。

java HelloWorld

HelloWorld クラスが com.example という名前のパッケージにある場合、次のコマンドを使用します。

java com.example.HelloWorld

コマンドライン引数を指定して Java アプリケーションを実行する

クラス名の後にコマンドライン引数を指定することで、Java アプリケーションにコマンドライン引数を渡すこともできます。たとえば:

java HelloWorld John Doe

Java コード内では、main() メソッドの args パラメータを使用してこれらのコマンドライン引数にアクセスできます。

public static void main(String[] args) {
    System.out.println("Hello, " + args[0] + " " + args[1] + "!");
}

JAR ファイルから Java アプリケーションを実行する

Java アプリケーションが JAR(Java Archive)ファイルにパッケージ化されている場合、java コマンドを使用して JAR ファイルを指定して実行できます。たとえば:

java -jar myapp.jar

これにより、JVM が起動し、JAR ファイルのマニフェストに指定されたメインクラスが実行されます。

graph TD
    A[Java Bytecode (.class)] --> B[Java Virtual Machine (JVM)]
    B --> C[Java Application]

これらの手順に従うことで、プロジェクトの複雑さやソースファイルの整理方法に関係なく、コマンドラインから Java アプリケーションを正常にコンパイルして実行できます。

まとめ

このチュートリアルの終わりまでに、コマンドラインから Java アプリケーションをコンパイルして実行する方法をしっかりと理解することができるでしょう。この知識により、自信を持って Java プログラムを開発、テスト、デプロイすることができ、Java プログラマーとしての道のりの基礎を築くことができます。