15

Eclipse には、[クラスパス] タブのある [実行構成] 画面があります。

このタブの「ユーザー エントリ」セクションにいくつかの jar がリストされていましたが、それらの jar ファイルを「ブートストラップ エントリ」セクションに複製するまでプロジェクトは実行されませんでした。jar が両方のセクションにリストされた後、プロジェクトは正常に実行されました。

なんで?

クラスパス設定のこれら 2 つの異なるカテゴリの違いは何ですか?

4

3 に答える 3

8

違いは、クラスローダーでの指定の順序です。

ブートストラップ クラスパスは、アプリを実行する VM の起動時にトップレベルのクラスローダーによって管理されます。(コマンドラインから、これは -Xbootclasspath を使用して指定されます)

ユーザー クラスパスは、アプリケーション クラスローダーによって管理されるエントリです。

ブートストラップ クラスパスのすべてのエントリは、ユーザー クラスパスよりも優先されます。

これらは、起動するアプリケーションを含むプロジェクトに基づいて初期化されますが、Eclipse で起動するアプリケーションのランチャー構成で変更できます。

なぜうまくいかなかったのか: 瓶は何でしたか? それらはランタイム クラスからロードする必要があったものでしたか (xml パーサーの代替ライブラリなど?)

詳細については、 http://java.sun.com/j2se/1.4.2/docs/tooldocs/findingclasses.htmlを参照してください。

-- スコット

于 2009-04-20T16:39:24.980 に答える
3

それらを抽出して比較する両方の方法でjarファイルを生成できますか。エントリを追加したときに jar ファイルが変更されたかどうか、非常に興味があります。クラスのロードに関する情報から、洞察が得られる場合があります。jar ファイルの仕様は実際には何のヒントも提供していません。

于 2009-04-19T03:43:30.423 に答える
2

1 つはエディターでソース/クラスパスをチェックするためのもので、もう 1 つはランタイム環境のためのものです。

おもう。

なんてこった、とにかく今日は限界だ。

于 2009-04-19T03:13:57.357 に答える