Javaプラットフォーム
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Micro Edition (ME) |
Standard Edition (SE) |
Enterprise Edition (EE) |
Javaプラットフォーム(ジャバプラットフォーム、英: Java Platform)はサン・マイクロシステムズが開発や実行プログラムをJava言語で記述することを許可するプログラムやプラットフォームの総称である。このプラットフォームは個々のプラットフォームやプロセッサには依存せず、(仮想マシン(virtual machine)と呼ばれる)実行エンジンと標準ライブラリセットつきコンパイラは様々なハードウェアやOSで実装されるため、Javaプログラムはそれら全ての環境で同一に動く。
「Javaプラットフォーム」はJava言語、Javaアプレット、Java Runtime Environment、JVM、携帯電話や組み込み機器対応Java(Java ME)、Java Web Start、Java製アプリケーションなども含めてまとめて単純に「Java」と呼ばれることがある。
プラットフォームの異なる「エディション」にはデスクトップマシン用のJava Standard Edition または Java SE (かつてのJ2SE)、ウェブサーバ向けのJava Enterprise EditionまたはJava EE (かつてのJ2EE)、スマートフォンのような携帯端末向けJava Micro EditionまたはJava ME (かつてのJ2ME)が存在する。2006年12月にはJavaプラットフォームの現在のバージョンは1.6.0または6(双方とも同一バージョン)である。バージョン6は製品バージョンであるが、1.6.0は開発バージョンである。
Javaプラットフォームは様々なプログラムから成り立っており、各々はそれ全体の能力から全く異なる一部品を提供する。例えば、JavaソースコードをJavaバイトコード(JVM(Java Virtual Machine)用中間言語)に変換するJavaコンパイラがあり、それはJava Development Kit (JDK)の一部として提供されている。精巧なJava Runtime Environment (JRE)は通常、オンザフライで中間バイトコードをネイティブマシンコードにJITコンパイラ(Just-in-timeコンパイラ)を意味するJVMを実装する。(Javaバイトコードにプリコンパイルされた)拡張ライブラリ は再利用できるコードを含み、配備されるべきJavaアプリケーション向けの多数の方法だけでなくアプレットととしてウェブページに埋め込まれているものも含んでいる。several other componentsは正確な図で描写された特定のエディションのなかにある利用できるものだけがある。
プラットフォームにある極めて重要なコンポーネントはJava言語コンパイラ、ライブラリ、仮想マシン仕様で設計されたルールによってJava中間バイトコードを「実行」する実行環境である。
目次 |
[編集] Java仮想マシン
- 詳細はJava仮想マシンを参照
Javaプラットフォームの本質はJavaバイトコードプログラムを実行する「仮想マシン(virtual machine)」の発想である。このバイトコードは実行プログラムの下にどんなハードウェアやOSがあろうと全く同じである。JITコンパイラはJava仮想マシン(Java virtual machineまたはJVMの上で動く。JITコンパイラは実行時にJavaバイトコードをネイティブなプロセッサ命令に翻訳し、プログラム実行中にメモリ上にネィティブコードをキャッシュする。
中間言語としてのバイトコードの使用は、バーチャルマシンが存在する様々なプラットフォーム上で走るJavaプログラムを許可する。JITコンパイラの使用はローディングによる僅かな遅延と、それらが一度にほとんどまたは全てJITコンパイルされ一度「ウォームアップ」した後で、Javaアプリケーションがネイティブなプログラムと同じくらいの速さで走る傾向があることを意味する。
JREバージョン1.2以来、サンのJVM実装はインタプリタの替わりにJITコンパイラ含んでいる。
[編集] クラスライブラリ
最も現代的なOSでは、再利用可能なコードの大きな集まりがプログラマの仕事を容易にした。 このコードは一般的にアプリケーションが実行時に呼び出せる動的読込ライブラリのセットとして提供される。Javaプラットフォームは特定のOSに依存しないため、アプリケーションは既存のライブラリのいくつかに頼ることはできない。それどころか、Javaプラットフォームは多くのものを含む標準クラスライブラリの集合を提供し、多くの現代のOSで一般に見つかる同じく再利用可能な機能の多くを含んでいる。
JavaクラスライブラリはJavaプラットフォームで三つの意図を役立てる。標準コードライブラリのように、それらはプログラマに、よく知られた、品目リストを保持する、複雑な文字列解析を行うというような共通のタスクを成し遂げる機能セットを提供する。その上、クラスライブラリはハードウェアやOSへの強い依存が普通である仕事を果たす抽象インタフェースを提供する。ネットワーク接続とファイルアクセスのようなタスクはよくプラットフォーム特有の能力に強く依存する。Javaのjava.net
とjava.io
ライブラリは、時には内部に必要不可欠なネイティブコードを実装しており、時には標それらのタスクを機能するJavaアプリケーションの標準インタフェースを提供する。最終的に、 いくらかのの基礎を成すプラットフォームはJavaアプリケーションが期待する特色の全てをサポートするかもしれない。これらの件についていえば、クラスライブラリはどんなに役立つものも使うそれらの特色をエミュレートするか、特別な特色の存在をチェックする一貫した方法提供するかのどちらかを行使できる。
現在のところ、JREに含まれているクラスライブラリは依然として私有のソフトウェアである。互換性のあるフリーライブラリの集合で記述されているFree Software Foundationの進行プロジェクトがある。それはClasspathと呼ばれている。2006年11月13日に、サンはJavaソースコード全てが2007年3月にGNU General Public Licenseのもとでリリースされると発表した。[1]
[編集] 言語
- 関連カテゴリ JVMプログラミング言語.
Javaという言葉そのものは、通常、Javaプラットフォームで設計されたJavaプログラミング言語を指す。プログラミング言語は一般的に「プラットフォーム」というフレーズの範囲外にあるにもかかわらず、Javaプログラミング言語はJavaプラットフォームの中心部品であると考えられている。Javaの言語と実行はそれゆえ、通例一単位と考えられている。
それでもやはり、サードパーティはJVMを対象にしたかなり多くのコンパイラやインタプリタを生み出している。それらのうちいくつかは既存の言語として、他は一方はJava言語自身の拡張として存在する。これらは以下を含む:
- AspectJ, アスペクト指向プログラミングを実現できるJava
- Generic Java (GJ), これはJava SE 5.0で正式にJavaに取り込まれた。
- Groovy
- BeanShell
- Jython, Python Python-Javaバイトコードコンパイラ jythonc を含むインタプリタ
- NetREXX
- NiceNice
- PizzaPizza
- ScalaScala
- JRuby, Rubyインタプリタ
- Sleep, Perl と Objective-C の特色をミックスしているインタプリタ
- Rhino, JavaScript インタプリタ
[編集] 類似プラットフォーム
Javaの成功とそのコンセプトwrite once, run anywhereは、目立って2002年に現れて以来、Microsoft .NETプラットフォームなど他の類似する取り組みを導き、Javaの成功側面の多くを受けいれた。しかしながら、.NETの目標はWindowsの36製品を開発することであり、まるでプログラマに非WindowsOSや非インテル互換プロセッサに手を出させない囲い込みを行っているようなものである。しかしながら.NETの目標には、多くの異なるプログラミング言語をMicrosoft中間言語へとコンパイルする言語非依存ライブラリのユーザビリティに強い主眼点を置いている。.NETは言語非依存互換性の面ではJava(だがJavaは2006年遅くに急速に追いついた)よりもやや成功している。
.NETはJava実装とは「非」互換で、関連するクラスライブラリは殆ど言語バージョンが古いJDK 1.1である;Visual J#(かつてはJ++として知られていた)と呼ばれるJava実装を含む。これらの理由は、それがJavaからMicrosoft .NETプラットフォームに切り替わるには、一等のMicrosoft .NET言語よりも過渡期の言語であるためである。
[編集] 参考資料
- ^ "Sun Open Sources Java Platform" Sun Microsystems: 2006年11月13日. .
[編集] 関連項目
- Java APIリスト
- Javaパフォーマンス
Java | |
---|---|
主要 テクノロジ |
Java言語 | Javaプラットフォーム | Java Development Kit | Java仮想マシン | Java Runtime Environment | Javaコンパイラ | Enterprise JavaBeans | Java Message Service | Java Transaction API | Java3D | JDBC | Java Web Start |
歴史 | Javaバージョンの歴史 | Java批評 | Java Community Process | サン・マイクロシステムズ |
言語機能 | バイトコード | 文法 | Applet | Servlet | JavaServer Pages | Java Foundation Classes | Java予約語 | パッケージ | JAR | Javadoc |
Java関連技術 | Jakarta Project | Apache Tomcat | NetBeans |
ソフトウェア: | Solaris • StarOffice(日本ではStarSuite)/OpenOffice.org • Java Desktop System • Java (Java言語 • JVM • Java API) • JES • Network File System |
ハードウェア: | SPARCstation • Sun Ultra series • Sun Enterprise • Sun Blade • Sun Fire • UltraSPARC T1 • SPARC • JavaStation • Sun Ray |
Education and Recognition: | SCPs |