1

Eclipse プラグインを取得しています: java.lang.NoClassDefFoundError for org/jongo/ResultHandler

必要なjarファイルを追加した後、ソースコードは正常にコンパイルされました.Eclipseでプロジェクト>ビルドパスを参照ライブラリとして使用して、これらのjarを追加しました。

問題は、これらの外部 jar ファイルがRuntime中に機能しないことです。

私のMANIFEST.MFファイルには、外部jarではなく、jarが1つしかありません。ここに外部 jar を追加する方法がわかりません。

Bundle-ClassPath: Test.jar

Build.properties

source.Test.jar = src/
bin.includes = plugin.xml,\
               META-INF/,\
               Test.jar

外部jarのように見える実行時にアプリを実行する方法を提案してください。

4

1 に答える 1

3

プラグインを作成するときは、jar をビルド パスに直接追加しないでください。

すべての jar をプラグインに (または他のプラグインとして) 含め、 を設定して .jar に含める必要がありBundle-Classpathますbuild.properties。他のプラグインを参照している場合は、それらをプラグインの依存関係に追加してください。

MANIFEST.MF/plugin.xml/build.properties エディターを使用して、それらを MANIFEST.MF に追加できます。

エディタの「ランタイム」タブで、jar を「クラスパス」エントリに追加します (メイン プラグイン コード用の「.」エントリも必要です)。

エディターの「ビルド」タブで、プラグインに含めたいすべての jar をチェックします。プラグインのどこかに jar を配置する必要があります (たとえば、「lib」ディレクトリ)。

たとえば、この build.properties では:

source.. = src/
output.. = bin/
bin.includes = META-INF/,\
               .,\
               plugin.properties,\
               plugin.xml,\
               lib/jogg-0.0.7.jar,\
               lib/jorbis-0.0.15.jar,\
               lib/vorbisspi1.0.2.jar,\
               icons/

「lib」ディレクトリに 3 つの jar があります。

この MANIFEST.MF は次のようになります。

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: greg.music.ogg;singleton:=true
Bundle-Version: 2.0.0.qualifier
Bundle-Vendor: %plugin.provider
Bundle-Localization: plugin
Require-Bundle: greg.music.core;bundle-version="1.0.0",
 greg.music.resources;bundle-version="1.0.0",
 org.eclipse.core.runtime,
 javazoom.jlgui.basicplayer,
 org.eclipse.e4.core.services;bundle-version="2.0.100"
Bundle-ClassPath: .,
 lib/jogg-0.0.7.jar,
 lib/jorbis-0.0.15.jar,
 lib/vorbisspi1.0.2.jar
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: javax.annotation;version="1.0.0",
 javax.inject;version="1.0.0",
 org.eclipse.e4.core.di.annotations

エディターの [ランタイム] タブ: ここに画像の説明を入力

ビルドタブ: ここに画像の説明を入力

于 2016-11-20T11:04:56.553 に答える