スクリーンショット GNU Classpath Swingのデモ | |
| 開発者 | GNU プロジェクト(正式にはFSF が主催) |
|---|---|
| 最終リリース | 0.99 [1]
/ 2012年3月16日 |
| リポジトリ |
|
| 書かれた | CとJava |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | 図書館 |
| ライセンス | GPLリンク例外 |
| Webサイト | www.gnu.org/software/classpath/ |
GNU Classpath は、Java プログラミング言語の標準クラス ライブラリのフリー ソフトウェア実装です。J2SE 1.4 および 5.0 のほとんどのクラスが実装されています。そのため、Classpath は Java ベースのアプリケーションを実行するために使用できます。GNU Classpath はGNU プロジェクトの一部です。当初はライセンスの非互換性のためlibgcjと並行して開発されましたが、後に 2 つのプロジェクトは統合されました。
GNU Classpath は、フリーソフトウェア財団によって優先度の高いプロジェクトとみなされました。Classpath プロジェクトが始まったとき、Sun Microsystemsの公式 Java 実装のライセンスでは、いかなる改変も配布できませんでした。Classpath プロジェクトの開始以来、OpenJDK はGPLの下でリリースされ、現在ではJava プラットフォームの公式リファレンス実装として機能しています。
ライセンス
GNU Classpath は、リンク例外付きのGNU 一般公衆利用許諾書に基づいてライセンスされています。これはフリーソフトウェアライセンスです。すべてのコードは正式にフリーソフトウェア財団が所有しており、[引用が必要]、この所有者は開発者に対する独自の契約上の義務に拘束されます。[説明が必要]
用途
すべてのフル機能の Java 仮想マシンは標準クラス ライブラリの実装を提供する必要があるため、 GNU Classpath は多くの無料 Java ランタイム( Kaffe、SableVM、JamVM、Jikes RVM、VMKit など) で使用されています。
その他の用途としては、次のようなものがあります。
- GNU Compiler for Java は、Java コードをネイティブのスタンドアロン実行可能ファイルにコンパイルできます。
- GCJAppletViewer [2]は、使用中のブラウザでJavaアプレットがサポートされていない場合に、コマンドラインからJavaアプレットを起動するためのものです。
- IKVM.NETは、Java と.NET Frameworkを統合します。
- JNode は、Java アプリケーションを実行するためのオペレーティング システムです。このシステムは、Java とアセンブラのみで記述されています。
- Oberon プログラミング言語との統合用の Jaosや、リアルタイム保証を備えた組み込みシステム用のJamaicaVMなどの特殊な仮想マシン。
- Myrinet上で最大128個のプロセッサを搭載した、クラスターによる分散コンピューティング用の仮想マシン。[3]
- IcedTeaプロジェクトは、アップストリームによる置き換えに先立ち、OpenJDKの独自要素の置き換えとして GNU Classpath を使用していました。
歴史
GNU Classpath の開発は 1998 年に 5 人の開発者によって開始されました。[要出典]歴史の中で、同様の目標を持つ他のプロジェクト ( Kaffe 、libgcj)と何度か合併しました。かつて、GNU Classpath は独自の仮想マシン (Japhar) を提供していました。Classpath が基本ライブラリになり、さまざまなプロジェクトで共有されるようになると、この仮想マシンは次第に注目されなくなり、現在はサポートされていません。[要出典]
公式 Java 1.4 API の大部分を実装した後、プロジェクトの作業は API カバレッジ指向ではなくバグ指向になりました。2006 年 10 月 24 日、最後に欠けていた 1.4 クラスである HTMLWriter の実装がコミットされました。開発速度 (1 日あたりの平均新規コード行数として数学的に計算) は 2006 年に過去最高に達しました。[引用が必要]
GNU Classpath という名前は、もともとBradley M. Kuhnが最初の開発者の 1 人である Paul Fisher に提案したものです。当時、フリー Java 実装コミュニティでは、 Sun の Java 商標がフリー実装に押し付けられることについて大きな懸念がありました。Kuhn は$CLASSPATHという名前を提案しました。これは、コンピュータ上で Java ライブラリが存在する場所を示すために、ほとんどの Java システムで使用される環境変数です。 $CLASSPATHは、 javaという単語を含むパス名( など)に展開されることが多いため、実際に Java と言わなくてもJavaという名前を思い起こさせる方法でした。Fisher と他の開発者は、 $とすべて大文字の使用が見苦しいことを好まなかったため、 Classpathに落ち着きました。
/usr/lib/java
開発チーム
メンテナーはプロジェクトの法的側面を担当し、定期的なプロジェクトリリースを準備し、品質管理を行います。また、メンテナーはCVS のアクセス権限も付与します。[要出典]
GNU Classpath には正式な階層はありません。作業は最も技術的に有能な人によって行われ、厳密な作業区分もありません。すべてのコード変更は、最初にパッチとしてディスカッション リストに投稿され、必要に応じて反対することができます。プロジェクトは通常、1 日に 5 ~ 8 件のパッチを受け取ります。
GNU Classpathライブラリのコードカバレッジの進捗状況は、OpenJDK6 [4]およびOpenJDK7 [5]に対して追跡できます。
仮想マシンの統合
GNU Classpath には、公式 Java API 名前空間のクラスが含まれています。ネイティブ コードの呼び出しが必要な場合や、強く望まれる場合は、少数の「VM」クラスから呼び出しが行われます。このような VM クラスの名前は、ネイティブ メソッドを必要とするクラスの名前に、VMプレフィックス (VMObject、VMString など) を加えたものと一致します。コードの残りの部分とは別に格納される VM クラスは、パッケージ private および finalです。これらのクラスのメソッドには、サポートするネイティブ ライブラリが必要であることを示すキーワードnativeが含まれています。このようなライブラリは、Java 仮想マシンの作成者によって提供されるため、そのような仮想マシンのソースが利用可能で変更可能な場合は、GNU Classpath をほぼすべての Java 仮想マシンに接続できます。
Java 1.5 の新しい言語機能のサポート
バージョン0.95より前では、GNU Classpathの各リリースは2つの別々のリリースtarballで構成されていました。1つはメインの開発ブランチの状態を表し、もう1つはJava 1.5に存在するジェネリック、列挙、注釈などの追加をサポートする、より実験的なブランチの内容を含んでいました。[6]
バージョン0.95以降、[7]ジェネリックなどのJava 1.5の追加機能はメインブランチに完全に統合されています。ブランチはEclipseコンパイラecjを使用してJava 1.5ソースコードをバイトコードにコンパイルすることで構築できます。GCJの場合、ecjを使用してこの初期段階を実行し、バイトコードをネイティブコードに変換します。0.95以降、GNU Classpathは、GNU Classpathを使用して新しくGPLのオープンソースjavac コンパイラをコンパイルおよび実行することもサポートし、GNU Classpathクラスライブラリ、ツール、および例をjavac自体でコンパイルすることもできます。
omg.org ドメインのクラス

GNU Classpath は、非フリー ライセンスのコード、または非フリー ライセンスのコードから自動的に生成されたコードを受け入れません。標準 Java API には、通常Object Management GroupによってリリースされたIDLファイルから生成される omg.org ドメインの多数のクラスが含まれています。これらのファイルの「使用は可能だが変更は不可」のライセンスは非フリーとみなされます。このため、GNU Classpath プロジェクトで言及されているクラスは、公式の印刷された OMG 仕様のみを使用して、ゼロから作成されました。したがって、GNU Classpath のこの部分は、プロジェクトの他のコードと同様にフリーです。
参照
注記
- ^ Fosdem 2006には、このデモと、SunとClasspathのCORBA実装間のデータ交換のその他のデモが含まれていました。[8]ソースコードはClasspathリポジトリで入手できます[9] 。
参考文献
- ^ Hughes, Andrew John (2012-03-16). 「GNU Classpath 0.99 リリース!」 ( World Wide Webログ). Fuseyism. 2012-12-14 時点のオリジナルよりアーカイブ。2012-03-20に取得。
- ^ GCJ アプレット ビューア、Koders、2009 年 9 月 18 日にオリジナルからアーカイブ、2009 年 9 月 14 日に取得。
- ^ 「Jupiter」、EECG、トロント大学。
- ^ 「OpenJDK6 に対する GNU クラスパス ライブラリ カバレッジ」、J API、Fuseyism、2015 年 9 月 6 日にオリジナルからアーカイブ、 2012 年 5 月 31 日に取得。
- ^ 「OpenJDK7 に対する GNU クラスパス ライブラリ カバレッジ」、J API、Fuseyism、2016 年 3 月 4 日にオリジナルからアーカイブ、 2012 年 5 月 31 日に取得。
- ^ 「GNU Classpath "95% and counting" 0.19 リリース」、GNU プロジェクト (発表)、ソフトウェア、フリーソフトウェア財団、2005-11-02、2011年5 月 31 日閲覧。
- ^ 「GNU Classpath 0.98 のリリース「遅くてもやらないよりはまし」」、GNU プロジェクト (発表)、ソフトウェア、フリーソフトウェア財団、2009 年 2 月 5 日。
- ^ Fosdem (会議アーカイブ)、Classpath、2006。
- ^ 「Classpath」、GNU is Not Unix プロジェクト(ソースコード) (例)、フリーソフトウェア財団。
外部リンク
- 公式サイト
- 「ソースコードを含む自動生成されたドキュメント」、クラスパス。
- 「ビルダー」、クラスパス: テスト実行とバイナリ互換性テスト
- GNU Classpath 開発者 (2006 年 5 月)、「フリー Java プロジェクト コラボレーションの現状」、GNU/Linux 週刊ニュース(記事)。
- 「透過的な開発」、SMI ( World Wide Webログ)、CH : ETHZ、2006-01-25、2006-07-20 にオリジナルからアーカイブ。
