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 回答