2016-04-26 20 views
0

私はアプリケーションのバンドルクラスパスにライブラリを持つEclipse RCPアプリケーションを持っています。 MANIFEST.MFは、次のようになります。Eclipse RCP:バンドルクラスパスのライブラリはどのように処理されますか?

... 
Bundle-ClassPath: ., 
    libs/commons-io-2.4.jar, 
    libs/gson-2.3.1.jar, 
    libs/log4j-1.2.17.jar, 
    libs/slf4j-api-1.7.10.jar, 
    libs/slf4j-log4j12-1.7.10.jar 
... 

これらのライブラリは、フォルダconfiguration/org.eclipse.osgi/13/0/.cp/libsにコピーされます(Eclipseの外部製品を輸出して)アプリケーションが起動されます。ファイルの属性を見ると、これはすべてのアプリケーションの開始(?)で行われるようです。この動作は文書化されており、影響を受ける可能性があります(たとえば、これらのライブラリがロードされるカスタムフォルダを定義するなど)。

答えて

1

これは、プラグインがJarとしてパッケージ化されている場合に実行されます。 FileLocator.toFileURLは、必要に応じて一時的にこの場所にジャーを解凍します。

あなたは、これがMANIFEST.MFのエントリ

注意(Eclipse helpを参照)として

Eclipse-BundleShape: dir 

を使用して起こらないように、プラグインがディレクトリとしてパッケージ化されていることを指定することができます:機能を使用してRCPを構築している場合、これはunpackオプションのpluginフィーチャー内の項目で上書きされます。

関連する問題