4

JDBC ドライバー (mysql-connector-java-5.1.19-bin.jar) を使用する必要があるプラグインを開発しています。このjarファイルへのパスをプラグインマニフェストで次のように定義すると:

Bundle-ClassPath: lib/mysql-connector-java-5.1.19-bin.jar

プラグインがビューの認識を停止し、次の例外が発生します:

java.lang.ClassNotFoundException: diplomaproject.views.SampleView
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:494)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:326)
    at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:231)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1193)
...

行を削除すると:

Bundle-ClassPath: lib/mysql-connector-java-5.1.19-bin.jar

マニフェストから、ビューは機能していますが、JDBC コネクタは機能しません。

私のマニフェストファイル全体:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: DiplomaProject
Bundle-SymbolicName: diplomaProject; singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: diplomaproject.Activator
Bundle-Vendor: MYDIPLOMA
Require-Bundle: org.eclipse.ui,
 org.eclipse.core.runtime
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: lib/mysql-connector-java-5.1.19-bin.jar
4

3 に答える 3

7

バンドル クラス パスにドット (「.」) を追加する必要があります。これにより、プラグインに含まれるソースからコンパイルされたすべてのクラスがクラス パスに追加されます。

マニフェストの正しいプロパティは次のとおりです。

Bundle-ClassPath: lib/mysql-connector-java-5.1.19-bin.jar,
 .
于 2012-04-12T13:49:16.153 に答える
2

バンドルもクラスパスに追加する必要があります。これを試して:

Bundle-ClassPath: .,lib/mysql-connector-java-5.1.19-bin.jar
于 2012-04-12T13:49:46.240 に答える
0

私は同じ問題に直面していました。いくつかの変更により、build.properties ファイルが変更されました。

similler プロジェクトのコンテンツを置き換えたところ、うまくいきました。

于 2015-09-10T05:57:54.747 に答える