JAVA ファイル形式とは?
.javaファイルは、Javaプログラミング言語で記述されたプレーンテキストのソースコードファイルです。Javaは、クラスとオブジェクトの概念を中心に構築されたオブジェクト指向プログラミング言語です。.javaソースファイルは、javacコンパイラによって.classバイトコードファイルにコンパイルされます。生成されたプログラムを実行するには、Java Virtual Machine (JVM)が必要です。また、JavaはAndroidアプリケーション開発に使用される主要な言語でもあります。
オブジェクト指向プログラミング
JavaはC++から強い影響を受けていますが、プラットフォームに依存しない言語としてゼロから設計されました。当初の設計者は、「一度書けば、どこでも実行できる(write once, run anywhere)」というポータビリティを実現するために、生の実行速度においていくらかのトレードオフを受け入れました。現代のJIT(just-in-time)コンパイルは、その後その差の大部分を埋めています。.javaファイルは、ほぼ完全にクラス、インターフェース、列挙型(enum)、レコードの宣言で構成されており、オブジェクトモデルの外にあるのはごくわずかなプリミティブ型(int、boolean、doubleなど)のみです。慣例として、各.javaファイルにはちょうど1つのpublicな型が含まれ、ファイル名はその型の名前と一致している必要があります。例えば、App.javaにはpublic class Appが含まれていなければなりません。
簡略化すると、クラスはオブジェクトの一般化(テンプレート)です:
- *クラス:* 人間 - *オブジェクト:* 山田太郎
- *クラス:* 飛行機 - *オブジェクト:* Boeing 737
各クラスは、オブジェクトが持つことができるプロパティ(例えば、車であれば色や座席数など)と、実行できるメソッド、つまり操作やアクション(例えば、車のオブジェクトであれば加速、ブレーキ、クラクションを鳴らすなど)を定義します。クラスは他のクラスから継承したり、他のクラスを構成要素としたりすることができ、コードの再利用とモジュール設計を可能にします。
javacで.javaファイルをコンパイルすると.classファイルが生成されます。配布用として、複数の.classファイルがJARアーカイブにパッケージ化されるのが一般的です。Java 11以降、単一ファイルの.javaプログラムは、明示的なコンパイル手順なしでjavaコマンドを使用して直接起動することもできます。
セキュリティと安全性
リスク: LOW.javaファイルは受動的なソーステキストであり、開いたり読み取ったりするだけでコンピュータに害を及ぼすことはありません。リスクが生じるのは、それを「コンパイル」して「実行」する場合のみです。他人のコードからビルドするプログラムと同様に、実行時にはユーザーの権限で動作し、コードに記述されたあらゆる操作を行う可能性があります。そのため、«javac»/«java»を実行する前にソースを確認するか、信頼できるものか判断してください。エディタでファイルを表示するだけで自動実行されることはありません。
形式の詳細
概要JAVA ファイルを開くプログラム
技術的詳細
詳細仕様| MIMEタイプ | text/x-java-source (text/x-java も許容) |
| テキストエンコーディング | UTF-8。Java 18 (2022) 以降、javacのデフォルトです。古いツールチェーンでは明示的な -encoding フラグが必要です。 |
| ファイルシグネチャ | なし - マジックバイトのないプレーンテキスト。通常、package宣言、import文、またはクラス定義で始まります。 |
| コンパイル出力 | javacは各.javaファイルを、ソース内で定義された型ごとに1つ以上の.classバイトコードファイルにコンパイルします。 |
| 1ファイルにつき1つのpublic型 | publicな型の名前はファイル名と完全に一致しなければなりません。例:App.javaはpublic class Appを宣言する必要があります。これに違反するとコンパイルエラーになります。 |
| ファイル構造の順序 | 任意のpackage宣言 → import文 → フィールドとメソッドを含むクラス、インターフェース、列挙型、またはレコードの宣言。 |
| 一般的なファイルサイズ | 1 KB - 100 KB。小さなユーティリティクラスは1 KB未満、大きなクラスでも100 KBを超えることは稀です。 |
| プラットフォームサポート | クロスプラットフォーム:Windows、macOS、Linux、およびJDKがインストールされたあらゆるOS。同じソースがすべてのプラットフォームでコンパイル可能です。 |
| 言語バージョン管理メカニズム | 構文レベルはファイル内部には保存されません。コンパイル時に javac --release N (例: --release 21) を介して制御されます。 |
| プリミティブ型 | 8つの組み込みプリミティブ(int, long, double, float, boolean, char, byte, short)がオブジェクト型と並んで存在します。 |
| 現代的な構文の追加 | レコード (Java 16), シールドクラス (Java 17), switchのパターンマッチング (Java 21), 名前のないパターンと変数 (Java 22) |
| 直接起動 (Java 11+) | 単一ソースの.javaファイルは、事前のjavacコンパイル手順なしで java FileName.java を使用して実行できます。 |
| デプロイメントパッケージング | コンパイルされた複数の.classファイルは、任意のJVMで配布および実行するために.jarアーカイブにまとめられます。 |
| 言語の管理 | Java言語仕様はOracleによって維持されています。Java Community Process (JCP) の下でOpenJDKを介してオープンソース実装が提供されています。 |
| 一般的な開発ツール | IntelliJ IDEA、Eclipse IDE、およびVisual Studio Code (Java Extension Pack付き) が、.javaファイル向けの完全な言語ツールを提供します。 |
| リリース日 | 1995 (Java 1.0, Sun Microsystems) |
| 最新バージョン | Tracks the Java language version; Java 24 (2025) is current at time of writing |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | docs.oracle.com |
JAVA の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。JAVA ファイルについて最初の質問をしてみましょう。