1

我一直在努力让我的 OSGi 应用程序在 eclipse 之外运行。这肯定不像我想象的那么容易,当然不仅仅是运行 java -jar org.eclipse.osgi_3.7.1.jar 并安装插件的情况。

我希望这是最后一个问题

java.sql.SQLException: 找不到适合 jdbc:mysql://localhost:3306/ 的驱动程序

这在 Eclipse 中运行良好。我有一个持久性捆绑包和几个碎片捆绑包,我根据所需的数据库类型加载它们。然后我还有另一个与数据库 JDBC 驱动程序捆绑在一起的包。在eclipse中我可以运行它,在eclipse之外我一直在尝试一切,包括使用类加载器来加载驱动程序

Activator.context = bundleContext;

Class.forName("com.mysql.jdbc.Driver");

try {
    context.getBundle().loadClass("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}

知道要看什么吗?从我可以看到我的设置是相同的,并且都运行相同的捆绑包。

4

1 回答 1

2

您的捆绑包是否导入包com.mysql.jdbc

阅读以下 wiki 页面,了解为什么这可能在 Eclipse 中工作但不能在适当的 OSGi 环境中工作的背景:http ://wiki.osgi.org/wiki/Why_does_Eclipse_find_javax.swing_but_not_Felix%3F

于 2012-03-05T08:12:32.550 回答