IcedTea
IcedTeaとは2007年6月にレッドハットが開始したOpenJDK用のビルドおよびシステム統合プロジェクトである。IcedTea-WebとはJava Web StartおよびJavaウェブブラウザプラグインのフリーソフトウェア実装である。IcedTea-SoundとはJavaサウンドサブシステム用プラグインのコレクションである。以前はIcedTeaに含まれていたPulseAudioプロバイダもこのコレクションの一部である。フリーソフトウェア財団は全てのJavaプログラマに開発環境としてIcedTeaを使うことを推奨している。
歴史的にIcedTeaプロジェクトの最初の目標は、2007年にサン・マイクロシステムズがフリーソフトウェアとしてリリースしたOpenJDKソフトウェアを一切プロプライエタリソフトウェアを必要とせずに利用可能とすることであった。それゆえにフリーソフトウェアを強いるFedoraなどのLinuxディストリビューションにOpenJDKの追加が可能となった。
HotSpot(OpenJDKのJava仮想マシン)のクロスアーキテクチャ移植は、コードにC++のコアに加えてアセンブリ言語が含まれているため困難である。IcedTeaプロジェクトはzero-assembler Hotspot(またはzero)と呼ばれる、アセンブリ言語をほとんど含まないHotSpotインタプリタのジェネリック移植を開発している。この移植により、HotSpotのインタプリタ移植を任意のLinuxプロセッサアーキテクチャに適合させることがとても容易になる。zero-assembler Hotspotのコードは、IcedTea7のバージョン1.6よりHotSpotのx86以外の移植(PPC、IA-64、S390およびARM)の全てに使われていた。
IcedTeaプロジェクトはまたHotSpot用にSharkと呼ばれるプラットフォーム非依存な実行時コンパイラも開発している。これはLLVMを使いZeroを補完するものである。Sharkは2010年8月に上流であるOpenJDKに含まれた。ARM32用のJITは1.6.0と2.1.1に最初に含まれた。レッドハットによるAArch64へのネイティブ移植は2.4.6で登場し、SAP/IBMからのネイティブPPC64移植は2.5.0に含まれる予定である。PPC/AIX移植はバージョン8u20からOpenJDKの上流に含まれており、AArch64移植はバージョン9から含まれる予定である。
2008年3月の時点で既に、IcedTea6にフリーではないバイナリプラグインは必要なくなったが、これはフリーではないバイナリプラグインがなくともOpenJDK 6のビルドドロップをビルドできるようになったからである。プロプライエタリなサウンドのサポートを、Gervillプロジェクトからのサウンドのサポートに置き換えたb10のリリース により、フリーではないバイナリプラグインを使わずにJava 1.6の完全な実装をビルドできるようになった。残ったただ1つのフリーではないバイナリプラグはSNMP用である。これはオプションであるJMXアーキテクチャ用プロバイダであり、仕様の一部ではない。2009年4月におけるb53より、OpenJDK 7でもOpenJDK 6と同様になった。OpenJDKのコアの外で(前述されたコアプラグインとは異なる)ブラウザプラグインを使って動作するJava Web Startアプレットを利用するためには、依然としてフリーではないバイナリプラグインが必要である。2013年の時点で、この目標を達成できる可能性があるソースコードはIcedTea-Webプロジェクトのみである。