gnu classpath は Java ライブラリのオープン ソース バージョンにすぎないと思っていました。どうやらそれはホストシステムに大きく結びついていますか?これは本当ですか。
たとえば、Java バイトコードのみを使用して gnu クラスパス「rt.jar」を構築することは可能で、それをブートストラップ ライブラリとして使用するための引数は何ですか?
gnu classpath は Java ライブラリのオープン ソース バージョンにすぎないと思っていました。どうやらそれはホストシステムに大きく結びついていますか?これは本当ですか。
たとえば、Java バイトコードのみを使用して gnu クラスパス「rt.jar」を構築することは可能で、それをブートストラップ ライブラリとして使用するための引数は何ですか?
GNUクラスパスのほとんどはプラットフォームに依存しませんが、仮想マシンおよびホストオペレーティングシステムとの舞台裏の相互作用を処理するVM固有のレイヤーがあります(存在する必要があります)。
クラスパスは、Javaプログラマーがすぐに使用できるようには設計されていません。多数のClasspathVM*クラスなどを適切に実装する必要があります。これらのクラスは通常、ターゲットVMの開発チームによって提供されます。
以前にクラスパスを使用していた一部のオープンソースJVMプロジェクトは、OpenJDKに移行中/移行済みであることにも注意してください。1つの理由は、クラスパスの実装が同等のSunJDKと互換性がない傾向があることです。これは、(法的な理由で)クラスパスチームが採用した「クリーンルーム」アプローチによるものと、SunがJDKテストスイートのオープンソースプロジェクトへのライセンス供与を継続的に望まないことによるものです。(Apache Harmonyにも後者の問題があります。)
各プラットフォームのJavaJREは、そのプラットフォームに特別に関連付けられており、独自のrt.jarファイルが含まれています。GNUクラスパスプロジェクトは、Javaクラスライブラリの無料バージョンを作成することを目的としていましたが、Java実装がオープンソースになっているため、これは一種の歴史的なアーティファクトになっています。