0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者】Javaの`.java`と`.class`の違いとは?

Last updated at Posted at 2024-12-23

Javaを学び始めたとき、「.javaと.classの違いって何だろう?」と疑問に思った方も多いのではないでしょうか?この記事では、Javaの基本である.java.classファイルの違いを、最新版の情報を交えてわかりやすく解説します。


1. .javaファイルとは?

.javaファイルは、Javaのソースコードが記述されたファイルです。

特徴

  • 人間が読める形式で書かれており、Javaの構文に従っています。
  • プログラムのロジックや処理内容を記述します。
  • 直接実行することはできません(ただし、Java 11以降では例外的に実行可能です)。
  • .javaファイルは開発者が編集・保存する主要なファイルです。

以下は、典型的なHelloWorldプログラムの.javaファイル例です:

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

2. .classファイルとは?

.classファイルは、.javaファイルをコンパイルして生成される、Java仮想マシン(JVM)が解釈可能なバイトコード形式のファイルです。

特徴

  • **コンパイル(javacコマンド)**によって生成されます。
  • JVMが実行できる形式で記録されており、プラットフォームに依存しません。
  • 人間が直接読める形式ではありませんが、クラス名やメソッド名などのメタデータを含むことがあります。

生成方法

以下のコマンドで、.javaファイルをコンパイルして.classファイルを生成します:

javac HelloWorld.java

このコマンドを実行すると、同じディレクトリにHelloWorld.classが生成されます。


3. Java 11以降の新しい特徴

Java 11以降では、.javaファイルをコンパイルせずに直接実行することが可能になりました。

実行方法

次のように、javaコマンドで.javaファイルを直接指定して実行できます:

java HelloWorld.java

この機能により、簡単なプログラムを素早く試すことができるようになり、初心者にも便利です。


4. なぜ.java.classの両方が必要なのか?

Javaでは「コンパイルしてから実行」する仕組みを採用しています。この仕組みにより、**プラットフォームに依存しないプログラムの実行(Write Once, Run Anywhere)**が実現されています。

  • ソースコード記述(.java)
    開発者がコードを記述し、編集する形式。

  • コンパイル(.class生成)
    javacコマンドで、.javaファイルをバイトコード形式の.classファイルに変換します。

  • 実行(JVMによる解釈)
    .classファイルをJVMが解釈し、プログラムを実行します。


5. .classファイルの中身を覗いてみる

.classファイルは基本的に人間が読めませんが、javapコマンドを使うことでバイトコードを確認できます。

使用例

javap -c HelloWorld.class

出力例

public class HelloWorld {
  public static void main(java.lang.String[]);
    Code:
       0: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
       3: ldc           #3                  // String Hello, World!
       5: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
       8: return
}

このように、JVMが実行する命令の内容が表示されます。


6. .java.classの比較表

ファイル形式 役割 説明
.java ソースコード 人間が読める形式でプログラムを記述
.class バイトコード JVMが実行可能な形式で保存

7. まとめ

  • .java: ソースコードを記述するファイル。Javaの構文に従ってプログラムを書きます。
  • .class: .javaファイルをコンパイルして生成されるバイトコードファイル。JVMが実行可能な形式です。

Javaの基本的な流れは以下の通りです:

  1. .javaを作成
  2. コンパイルして.classを生成
  3. .classを実行

Java 11以降では、.javaを直接実行できるため、簡単なプログラムの試作が容易になりました。


この仕組みを理解することで、Javaの基礎だけでなく、他のプログラミング言語にも応用できる考え方を身につけることができます。この記事が参考になったら、ぜひフィードバックをお寄せください! 😊

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?