Java Language
Java Edition、バージョン、リリースおよびディストリビューション
サーチ…
Java SE JREまたはJava SE JDKディストリビューションの違い
Sun / OracleリリースのJava SEには、JREとJDKという2つの形式があります。簡単に言えば、JREは実行中のJavaアプリケーションをサポートし、JDKはJava開発もサポートします。
Javaランタイム環境
Java Runtime EnvironmentまたはJREディストリビューションは、Javaアプリケーションの実行と管理に必要な一連のライブラリとツールで構成されています。典型的な現代JREのツールは次のとおりです。
- JVM(Java Virtual Machine)でJavaプログラムを実行するための
java
コマンドは、 - Nashorn Javascriptエンジンを実行するための
jjs
コマンド。 - Javaキーストアを操作するための
keytool
コマンド。 - セキュリティサンドボックスのセキュリティポリシーを編集するための
policytool
コマンド。 - Web配置用の「pack200」ファイルの梱包と開梱のための
pack200
とunpack200
ツール。 - Java CORBAおよびRMIアプリケーションをサポートする
orbd
、rmid
、rmiregistry
およびtnameserv
コマンド。
「デスクトップJRE」インストーラには、一部のWebブラウザに適したJavaプラグインが含まれています。これは意図的に「Server JRE」インストーラーから除外されています.linux syscall read benchmarku
Java 7 Update 6以降では、JREインストーラーにJavaFX(バージョン2.2以降)が含まれています。
Java開発キット
Java Development KitまたはJDKディストリビューションには、JREツール、およびJavaソフトウェアを開発するための追加ツールが含まれています。追加のツールには、
-
javac
コマンド。Javaソースコード( ".java")をバイトコードファイル( ".class")にコンパイルします。 -
jar
やjarsigner
などのJARファイルを作成するためのツール - 以下のような開発ツール:
-
appletviewer
アプレットを実行するための -
idlj
CORBA IDLからJavaコンパイラへ -
javah
JNIスタブジェネレータ - Javaソースコードの文字セット変換用の
native2ascii
-
schemagen
Java to XMLスキーマジェネレータ(JAXBの一部) -
serialver
は、Java Object Serializationバージョン文字列を生成します。 - JAX-WSのための
wsgen
とwsimport
サポートツール
-
- 診断ツール:
-
jdb
基本的なJavaデバッガ -
jmap
およびjhat
を使用してJavaヒープをダンプおよび分析します。 - スレッドスタックダンプを取得するための
jstack
- ".class"ファイルを調べるための
javap
-
- アプリケーション管理および監視ツール:
-
jconsole
は管理コンソール、 - アプリケーション監視用の
jstat
、jstatd
、jinfo
、およびjps
-
典型的なSun / Oracle JDKインストールには、Javaライブラリのソースコードを含むZIPファイルも含まれています。 Java 6より前は、公開されている唯一のJavaソースコードでした。
Java 6以降、OpenJDKの完全なソースコードはOpenJDKサイトからダウンロードできます。通常、(Linux)JDKパッケージには含まれていませんが、別のパッケージとして入手できます。
Oracle HotspotとOpenJDKの違いは何ですか?
JREとJDKの二分法と直交しているため、幅広く利用できるJavaリリースには2種類あります。
- Oracleホットスポットのリリースは、Oracleのダウンロードサイトからダウンロードしたものです。
- OpenJDKのリリースは、OpenJDKのソースリポジトリから構築されたリリース(通常はサードパーティ製のプロバイダ)です。
機能的には、HotspotリリースとOpenJDKリリースにはほとんど違いがありません。ホットスポットには、Oracle(有料)Javaの顧客が有効にできる「エンタープライズ」機能がいくつかありますが、ホットスポットとOpenJDKの両方に同じテクノロジが存在します。
OpenJDKに対するHotspotのもう1つの利点は、Hotspot用のパッチリリースが少し前にリリースされる傾向があることです。これは、OpenJDKプロバイダがどの程度機敏であるかによっても異なります。たとえば、Linuxディストリビューションのビルドチームが新しいOpenJDKビルドを準備してQAを作成し、パブリックリポジトリに入れるのにどれくらいの時間がかかるかなどです。
大部分のホットスポットリリースは、ほとんどのLinuxディストリビューションのパッケージリポジトリからは入手できません。これは、Hotspotを使用すると、通常Linuxマシン上でJavaソフトウェアを最新の状態に保つことがより効果的であることを意味します。
Java EE、Java SE、Java ME、およびJavaFXの違い
Javaテクノロジはプログラミング言語とプラットフォームの両方です。 Javaプログラミング言語は、特定の構文とスタイルを持つ高水準のオブジェクト指向言語です。 Javaプラットフォームは、Javaプログラミング言語アプリケーションが実行される特定の環境です。
いくつかのJavaプラットフォームがあります。多くの開発者は、長年のJavaプログラミング言語開発者であっても、異なるプラットフォームが互いにどのように関係しているかを理解していません。
Javaプログラミング言語プラットフォーム
Javaプログラミング言語には4つのプラットフォームがあります。
Javaプラットフォーム、Standard Edition(Java SE)
Javaプラットフォーム、エンタープライズ版(Java EE)
Javaプラットフォーム、Micro Edition(Java ME)
Java FX
すべてのJavaプラットフォームは、Java仮想マシン(VM)とアプリケーションプログラミングインターフェイス(API)で構成されています。 Java Virtual Machineは、Javaテクノロジアプリケーションを実行する特定のハードウェアおよびソフトウェアプラットフォーム用のプログラムです。 APIは、他のソフトウェアコンポーネントまたはアプリケーションを作成するために使用できるソフトウェアコンポーネントの集まりです。各Javaプラットフォームは仮想マシンとAPIを提供します。これにより、Javaプラットフォームの互換性、消費電力、安定性、開発の容易性、およびセキュリティ。
Java SE
ほとんどの人がJavaプログラミング言語を考えるとき、彼らはJava SE APIを考えています。 Java SEのAPIは、Javaプログラミング言語のコア機能を提供します。これは、Javaプログラミング言語の基本タイプとオブジェクトから、ネットワーク、セキュリティ、データベースアクセス、グラフィカルユーザーインターフェイス(GUI)開発、およびXML解析に使用される高級クラスまでをすべて定義します。
コアAPIに加えて、Java SEプラットフォームは、仮想マシン、開発ツール、デプロイメントテクノロジ、およびJavaテクノロジアプリケーションで一般的に使用されるその他のクラスライブラリとツールキットで構成されています。
Java EE
Java EEプラットフォームは、Java SEプラットフォームの上に構築されています。 Java EEプラットフォームは、大規模で多層でスケーラブルで信頼性が高く、安全なネットワークアプリケーションを開発し実行するためのAPIと実行環境を提供します。
Java ME
Java MEプラットフォームは、携帯電話などの小型デバイス上でJavaプログラミング言語アプリケーションを実行するためのAPIと小さなフットプリント仮想マシンを提供します。このAPIはJava SE APIのサブセットであり、小さなデバイスアプリケーションの開発に役立つ特別なクラスライブラリもあります。 Java MEアプリケーションは、多くの場合、Java EEプラットフォームサービスのクライアントです。
Java FX
Java FXテクノロジーは、Java FX ScriptTMで書かれたリッチインターネットアプリケーションを作成するためのプラットフォームです。 Java FXスクリプトは静的型宣言言語で、Javaテクノロジバイトコードにコンパイルされ、Java VM上で実行されます。 Java FXプラットフォーム用に作成されたアプリケーションは、Javaプログラミング言語クラスを含み、それにリンクすることができ、Java EEプラットフォームサービスのクライアントでもよい。
Java SEのバージョン
Java SEのバージョン履歴
次の表は、Java SEプラットフォームの重要なメジャーバージョンのタイムラインを示しています。
Java SEバージョン1 | コード名 | 廃止(無料2 ) | 発売日 |
---|---|---|---|
Java SE 9(アーリーアクセス) | 無し | 未来 | 2017-07-27(推定) |
Java SE 8 | 無し | 未来 | 2014-03-18 |
Java SE 7 | イルカ | 2015-04-14 | 2011-07-28 |
Java SE 6 | マスタング | 2013-04-16 | 2006-12-23 |
Java SE 5 | 虎 | 2009-11-04 | 2004年10月4日 |
Java SE 1.4.2 | マンティス | 2009年11月4日より前 | 2003-06-26 |
Java SE 1.4.1 | ホッパー/グラスホッパー | 2009年11月4日より前 | 2002年9月16日 |
Java SE 1.4 | マーリン | 2009年11月4日より前 | 2002-02-06 |
Java SE 1.3.1 | レディバード | 2009年11月4日より前 | 2001-05-17 |
Java SE 1.3 | チョウゲンボウ | 2009年11月4日より前 | 2000-05-08 |
Java SE 1.2 | 遊び場 | 2009年11月4日より前 | 1998年12月8日 |
Java SE 1.1 | スパークラー | 2009年11月4日より前 | 1997-02-19 |
Java SE 1.0 | オーク | 2009年11月4日より前 | 1996年1月21日 |
脚注:
このリンクは、オラクルのWebサイトにある各リリースのドキュメントのオンライン・コピーへのリンクです。多くの古いリリースのドキュメントはオンラインではなくなりましたが、通常はOracle Javaアーカイブからダウンロードできます。
Java SEのほとんどの歴史的なバージョンは正式な "end of life"の日付を過ぎました。 Javaバージョンがこのマイルストーンに合格すると、Oracleは無料でアップデートを提供しなくなります。サポートは、サポート契約を結んでいるお客様にも利用できます。
ソース:
- カナダのマインド・プロダクツのRoedy GreenによるJDKリリース日
Java SEバージョンのハイライト
Java SEバージョン | ハイライト |
---|---|
Java SE 8 | ラムダ式とMapReduceにインスパイアされたストリーム。 Nashorn Javascriptエンジン。型の注釈と繰り返しの注釈。符号なし算術拡張。新しい日付と時刻のAPI。静的にリンクされたJNIライブラリ。 JavaFXランチャー。 PermGenの除去。 |
Java SE 7 | 文字列スイッチ、 リソースの試行 、ダイヤモンド( <> )、数値リテラルの強化、例外処理/再解析の改善並行性ライブラリの拡張。ネイティブファイルシステムのサポートが強化されました。ティムソート。 ECC暗号アルゴリズム。改良された2Dグラフィックス(GPU)サポート。プラッガブルな注釈。 |
Java SE 6 | JVMプラットフォームとSwingのパフォーマンスの大幅な向上スクリプト言語APIとMozilla Rhino Javascriptエンジン。 JDBC 4.0。コンパイラAPI。 JAXB 2.0。 Webサービスのサポート(JAX-WS) |
Java SE 5 | 注釈、自動ボクシング、 enum クラス、varargs、 for ループと静的なインポートのfor 拡張。 Javaメモリモデルの仕様。スイングとRMIの拡張。 java.util.concurrent.* パッケージとScanner 追加。 |
Java SE 1.4 | assert キーワード。正規表現クラス。例外チェーン。 NIO API - ノンブロッキングI / O、 Buffer 、 Channel 。 java.util.logging.* API。イメージI / O API。統合されたXMLとXSLT(JAXP)。統合されたセキュリティと暗号(JCE、JSSE、JAAS)統合されたJava Web Start。プリファレンスAPI。 |
Java SE 1.3 | HotSpot JVMが含まれています。 CORBA / RMI統合Java命名とディレクトリインタフェース(JNDI)。デバッガフレームワーク(JPDA)。 JavaSound API。プロキシAPI。 |
Java SE 1.2 | strictfp キーワード。 Swing API。 Javaプラグイン(Webブラウザ用)。 CORBAの相互運用性コレクションフレームワーク。 |
Java SE 1.1 | 内部クラス。反射。 JDBC。 RMI。 Unicode /文字ストリーム。国際化対応。 AWTイベントモデルのオーバーホールJavaBeans。 |
ソース:
- Wikipedia: Javaのバージョン履歴