Eclipse には、[クラスパス] タブのある [実行構成] 画面があります。
このタブの「ユーザー エントリ」セクションにいくつかの jar がリストされていましたが、それらの jar ファイルを「ブートストラップ エントリ」セクションに複製するまでプロジェクトは実行されませんでした。jar が両方のセクションにリストされた後、プロジェクトは正常に実行されました。
なんで?
クラスパス設定のこれら 2 つの異なるカテゴリの違いは何ですか?
Eclipse には、[クラスパス] タブのある [実行構成] 画面があります。
このタブの「ユーザー エントリ」セクションにいくつかの jar がリストされていましたが、それらの jar ファイルを「ブートストラップ エントリ」セクションに複製するまでプロジェクトは実行されませんでした。jar が両方のセクションにリストされた後、プロジェクトは正常に実行されました。
なんで?
クラスパス設定のこれら 2 つの異なるカテゴリの違いは何ですか?
違いは、クラスローダーでの指定の順序です。
ブートストラップ クラスパスは、アプリを実行する VM の起動時にトップレベルのクラスローダーによって管理されます。(コマンドラインから、これは -Xbootclasspath を使用して指定されます)
ユーザー クラスパスは、アプリケーション クラスローダーによって管理されるエントリです。
ブートストラップ クラスパスのすべてのエントリは、ユーザー クラスパスよりも優先されます。
これらは、起動するアプリケーションを含むプロジェクトに基づいて初期化されますが、Eclipse で起動するアプリケーションのランチャー構成で変更できます。
なぜうまくいかなかったのか: 瓶は何でしたか? それらはランタイム クラスからロードする必要があったものでしたか (xml パーサーの代替ライブラリなど?)
詳細については、 http://java.sun.com/j2se/1.4.2/docs/tooldocs/findingclasses.htmlを参照してください。
-- スコット
1 つはエディターでソース/クラスパスをチェックするためのもので、もう 1 つはランタイム環境のためのものです。
おもう。
なんてこった、とにかく今日は限界だ。