メインコンテンツへスキップ
  1. ノート/
  2. Java/

java_command

·2140 文字·5 分· loading · loading · · ·
ICE345
著者
ICE345
CS Student | System | Linux | OCaml

Java でプログラムをコンパイルして実行する時は、主にいくつかのコマンドを使います。代表的なものはjavac(コンパイラ)、java(実行コマンド)、その他の補助コマンドです。以下は最もよく使う Java のコンパイル・実行コマンドです。

1. Java ソースコードを書く
#

まず Java ソースファイルが必要です。たとえばHelloWorld.javaというファイルを作り、内容を以下のようにします。

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

2. Java プログラムをコンパイルする
#

javacコマンドで Java ソースファイルをコンパイルします。このコマンドは.javaファイルを Java バイトコードへコンパイルし、対応する.classファイルを生成します。

javac HelloWorld.java

実行後、HelloWorld.classファイルが生成されます。これが Java 仮想マシン(JVM)で実行できるバイトコードファイルです。

複数ファイルをコンパイルする:
#

複数の Java ファイルがある場合、一緒にコンパイルできます。

javac File1.java File2.java

または、現在ディレクトリ下のすべての Java ファイルをコンパイルします。

javac *.java

3. Java プログラムを実行する
#

javaコマンドで、コンパイル済みの Java クラスファイルを実行します。

java HelloWorld

注意:Java プログラムを実行する時、.class拡張子は付けません。クラス名だけを指定します。

4. 出力ディレクトリを指定してコンパイルする
#

-dオプションで、コンパイル後の.classファイルの出力先ディレクトリを指定できます。

javac -d bin HelloWorld.java

これにより、コンパイル後の.classファイルはbinディレクトリへ出力されます。

5. クラスパス(CLASSPATH)を設定する
#

Java プログラムが他のライブラリやclassファイルに依存している場合、-cp(または-classpath)オプションでクラスパスを指定する必要があります。例:

java -cp .:lib/somelibrary.jar HelloWorld

この例では、現在ディレクトリ(.)とlib/somelibrary.jarがクラスパスに追加されています(Linux はコロン:で区切り、Windows はセミコロン;で区切る点に注意)。

6. JAR ファイルへパッケージ化する
#

Java プログラムを JAR ファイル(Java Archive)としてまとめ、JVM から直接実行できるようにできます。手順は以下の通りです。

JAR ファイルを作成する:
#

jar cvf HelloWorld.jar HelloWorld.class

実行可能 JAR ファイルを作成する:
#

Java プログラムにmainメソッドがある場合、実行可能な JAR ファイルを作れます。

  1. まずmanifest.txtファイルを作成し、エントリポイントを指定します。
Main-Class: HelloWorld
  1. 次に、以下のコマンドで JAR ファイルを作成します。
jar cfm HelloWorld.jar manifest.txt HelloWorld.class
  1. JAR ファイルを実行します。
java -jar HelloWorld.jar

JAR ファイルへパッケージ化する別の方法
#

jarコマンドを使い、生成済みのバイトコードファイルをパッケージ化します。

jar -cvf hello.jar HelloWorld.class

ここでcは新しいjarパッケージを作成すること、vは作成過程の情報を出力すること、fは新しく生成するjarに名前を付けることを表します。

最後に、以下のコマンドでjarパッケージを実行します。

java -jar hello.jar

ただし、このままでは期待した結果は出ず、hello.jarにメインマニフェスト属性がないというエラーが発生します。これは、まだMENIFEST.MFファイルにMain-Class属性を追加していないためです。

圧縮ソフトで先ほど作成したhello.jarを開くと、HelloWorld.classファイル以外にMETA-INFフォルダが追加され、その中にMENIFEST.MFファイルがあります。このファイルをエディタで開き、以下のコードを追加します。(追加後、ファイル末尾に空行を一行残すことを忘れない

Main-Class: HelloWorld

追加後、再びjava -jar hello.jarを実行すれば、コンソールにHello World!を正常に出力できます。

7. よく使う JDK コマンドまとめ
#

  • javac:Java コンパイラ。Java ソースファイル(.java)をバイトコードファイル(.class)へコンパイルする。

    javac HelloWorld.java
  • java:Java インタプリタ。コンパイル済みバイトコード(.class)ファイルを実行する。

    java HelloWorld
  • jar:JAR ファイル(Java アーカイブファイル)を作成・管理するためのコマンド。複数の.classファイルやその他リソースをまとめられる。

    jar cvf HelloWorld.jar HelloWorld.class
  • javadoc:Java ソースコードの API ドキュメントを生成する。

    javadoc HelloWorld.java
  • javap.classファイルを逆コンパイルし、バイトコードやメソッドシグネチャを確認する。

    javap HelloWorld

8. デバッグ(jdb
#

Java プログラムをデバッグする必要がある場合、Java Development Kit にはjdbコマンド(Java Debugger)も用意されています。ブレークポイント設定、変数確認などに使えます。

jdb HelloWorld

まとめ
#

Java プログラムのコンパイルと実行では、主に二つの核心コマンドを使います。javac(コンパイル)とjava(実行)です。これらのコマンドにより、Java コードを書き、コンパイルし、実行できます。さらに、jarコマンドで Java プログラムを JAR ファイルにパッケージ化でき、javapでバイトコードを逆コンパイルでき、jdbで Java プログラムをデバッグできます。これらのコマンドを組み合わせることで、Java 開発は非常に柔軟で強力になります。

関連記事