.java と.class の違い

Shikha Chaudhary 2023年10月12日
  1. Java でプログラムを書くための基本
  2. Java の .java ファイル
  3. Java の .class ファイル
  4. .java ファイルと .class ファイルの違い
  5. まとめ
.java と.class の違い

Java は、プラットフォームに依存しないプログラミング言語です。これには、C 言語のような通常の 1 ステップのコンパイルではなく、2 ステップの実行プロセスが含まれます。

最初のステップの実行は、OS に依存しないコンパイラを使用して行われます。2 番目のステップの実行は、JVM または Java 仮想マシンとも呼ばれる仮想マシンを使用して実行されます。

2 段階の実行中に、拡張子が .java および .class のファイルが作成されます。この記事では、.java ファイルと .class ファイルの基本的な違いについて説明します。

Java でプログラムを書くための基本

.java および .class ファイルの概念を理解するには、Java プログラムがどのように実行されるかを知っている必要があります。例として次のコードを見てみましょう。

public class DemoProgram {
  /* This is a demo Java program that will print 'Hello Java' as the output */

  public static void main(String[] args) {
    System.out.println("Hello Java");
  }
}

このプログラムを実行するには、次の手順に従ってください。

  • 上記のコードをテキストエディタで記述します。次に、ファイルを DemoProgram.java として保存します。ファイル名はクラスの名前と同じである必要があることに注意してください。
  • このファイルを保存したディレクトリへのパスを含むコマンドプロンプトウィンドウを開きます。
  • このコマンドを入力します-javac DemoProgram.java。エンターキーを押します。javac コマンドは Java プログラムをコンパイルします。入力として .java ファイルを受け取り、それをバイトコードファイルに変更します。このステップにより、コードのコンパイルが開始されます。コンパイルがエラーなしで成功すると、カーソルは次の行に移動します。
    C :\Users\PC > javac DemoProgram.java
    
  • 次に、次のコマンドを入力します-java DemoJava。ここでは、ファイル名に .java を使用していません。その理由は、java コマンドがバイトコードを入力として受け取り、ソースコードに従って最終出力を提供するためです。簡単に言えば、今回の DemoProgram は Java ファイルではなくバイトコードです。
    C :\Users\PC > java DemoProgram
    
  • 上記のコマンドはプログラムを実行し、出力は次のように表示されます。
    Hello Java
    

先に進む前に、次の点に注意してください。

  • ソースコードは、プログラマーが任意のプログラミング言語で作成するコードです。問題を解決するために手動で記述します。

  • Java では、各プログラムはクラスを構成します。コードを記述する目的によっては、1つのプログラムに複数のクラスが含まれる場合があります。上記の例のように、DemoProgram と呼ばれるクラスは 1つだけです。

上記のセクションでテキストファイルを作成し、拡張子 .java を付けて保存します。これは、コンパイラを通過するソースファイルです。

これにより、ソースコードがマシンに依存しないエンコーディングにエンコードされます。これは Bytecode と呼ばれます。

すでに述べたように、1つのプログラムに 1つ以上のクラスが含まれる場合があります。したがって、エンコード中に、各クラスのコンテンツは別々の .class ファイルに入れられます。

これらのファイルは、マシンまたは OS に依存しないため、任意のシステムで実行できます。

.java ファイルと .class ファイルがいつ登場するかわかりましたか?この拡張子のソースコードを保存すると、.java ファイルが形成されます。コンパイルが行われると、.class ファイルが形成されます。

Java の .java ファイル

.java ファイルは、Java のソースコードそのものに他なりません。

簡単に言えば、私たちが書いたコードを含むファイルです。単純なテキストエディタまたは任意の IDE を使用して Java プログラムを作成できます。

使用するものが何であれ、作成したプログラムまたはソースコードを保存します。Java ソースコードファイルを保存するには、.java 拡張子を使用します。

言語ごとに、ソースコードファイルを保存する規則が異なります。C 言語と同様に、ソースコードファイルの拡張子は .c です。Python では .py であり、C++ では .cpp を使用します。

Java の .class ファイル

.class ファイルは、ソースコードにクラスのバイトコードが含まれているファイルです。このファイルは、コンパイルが行われるときに形成されます。

Java がプラットフォームに依存しない言語であると述べたとき、それはこれらのクラスファイルによるものです。これらのファイルは、任意の OS またはマシンで実行できます。

.class ファイルは、コンパイルされた .java ファイルと見なすことができます。これは、JVM(Java 仮想マシン)で実行されるファイルです。

.class ファイルの数は必ずしも 1つである必要はありません。これは、コンパイル後に各クラスが異なる .class ファイルに入るため、ソースコードが持つクラスの数と同じです。

例 1:

public class DemoProgram {
  /* This is a demo Java program that will print 'Hello Java' as the output */

  public static void main(String[] args) {
    System.out.println("Hello Java");
  }
}

出力:

C:\Users\PC>javac DemoProgram.java
    
C:\Users\PC>java DemoProgram    
Hello Java

このコードには、DemoProgram という 1つのクラスしかありません。したがって、コンパイルにより、.class ファイル DemoProgram が 1つだけ取得されます。

次に、別の例を見てみましょう。

例 2:

// A class
class TestCase {
  public static void main(String[] args) {
    System.out.println("An example with multiple classes.");
  }
}

// Another class
class Demo {
  public static void main(String[] args) {
    System.out.println("This is an example.");
  }
}

// One more class
class Example {
  public static void main(String[] args) {
    System.out.println("It contains three classes.");
  }
}

ファイルをコンパイルします。

C :\Users\PC > javac Example.java

コンパイル後、出力として 1つではなく 3つの .class ファイルを取得します。したがって、ソースコード内のクラスの数と同じ数の .class ファイルがあることがわかります。

次のように、各 .class ファイルを個別に実行できます。

C :\Users\PC > java TestCase An example with multiple classes.

               C :\Users\PC
    > java Demo This is an example.

      C :\Users\PC
    > java Example It contains three classes.

.java ファイルと .class ファイルの違い

これら 2 種類のファイルの違いは、次の表にまとめられています。

.java ファイル .class ファイル
Java ソースコードが含まれています。 Java バイトコードが含まれています。
プログラマーまたは個人がそれを書きます。 これは、.java ファイルのコンパイルの結果として形成されます。
人間が読める形式です。 これは、JVM でプログラムの実行に使用されます。
.class ファイルの前に形成されます。これがないと、クラスファイルを作成できません。 常に .java ファイルの後に形成されます。
これは、任意のテキストエディタまたは Java IDE で記述できます。 これは、任意の OS またはマシンで実行できます。

まとめ

この記事では、.java ファイルと .class ファイルの主な違いについて説明しました。また、Java プログラムがマシンレベルとユーザーレベルでどのように実行されるかを見ました。

この概念は Java プログラミングの基礎であり、Java プログラムとアプリケーションを効率的に実行するためにそれを理解することが重要です。

関連記事 - Java File

関連記事 - Java Class