导出的 Jar 文件引发异常 (JDBC)

Posted

技术标签:

【中文标题】导出的 Jar 文件引发异常 (JDBC)【英文标题】:Exported Jar file throws exception (JDBC) 【发布时间】:2013-11-18 22:04:16 【问题描述】:

我在我的一个项目中使用了 JDBC,它在 Eclipse 中完美运行。我不得不将 ojdbc6.jar 添加到项目 BTW 的 Java 构建路径。 (我也没有在代码中包含任何 Class.forName 语句,因为我听说它对于 JDBC 4 及更高版本是可选的)

当我将项目导出到 jar 文件并尝试运行它时,它会抱怨说“找不到 JDBC 驱动程序”等等。我可以看到这是因为 ojdbc6.jar 现在从构建路径中丢失了。有人可以告诉我解决方案吗?

谢谢!

【问题讨论】:

相关***.com/q/18413014/85421? 【参考方案1】:

这是一个简单的方法来导出使用外部 jar 作为库的 JAR:

    你要写一个ma​​nifest文件,我把它命名为jar.manifest。

    清单文件中的内容如下:

    清单版本:1.0 主类:com.enginebai.activity.MyJDBCProgram 类路径:lib/ojdbc6.jar lib/some-externam-lib.jar

并且确保在 Class-Path 下放置一个空行,否则 JAR 将无法运行。 (我不知道为什么要在那儿放一个空行。)

让我们回到eclipse:

    在 Eclipse 中,您导出您的类并记住选择上面的清单文件。 确保您的 ojdbc6.jar 位于 project/lib 文件夹中。 打开你的终端并cd到项目根目录,输入`java -jar your-jar-name.jar',它应该可以工作了。

【讨论】:

【参考方案2】:

运行 jar 时将 ojdbc6.jar 放在类路径中

【讨论】:

你能告诉我怎么做吗,因为 java -cp 只接受类名,而我只有 JAR? 在 linux java -cp ojdbc.jar:your.jar -jar YourMainClass 文件 ojdbc6.jar 必须在您的工作目录中。并且您应该在 cp 中定义所有内容:java -cp ojdbc6.jar:myJar.jar:。你的主类【参考方案3】:

我进行了一些研究并找到了一个似乎可行的解决方案。 我已将项目导出到“可运行 Jar 文件”中,而不仅仅是“jar 文件”。 这样,我实际上能够将 Jar 文件从我的构建路径重新打包到我将项目导出到的新 Jar 文件中。简单干净。

您可能还想查看构建路径中现有 jar 文件中的签名 Jar 文件和任何其他证书。它们不能通过导出选项直接重新打包。

【讨论】:

以上是关于导出的 Jar 文件引发异常 (JDBC)的主要内容,如果未能解决你的问题,请参考以下文章

JAVA导出JAR文件后不能连接数据库了 Class.forName(driver).newInstance();空指针异常

我讲一个项目导出jar文件后,执行jar文件时出了一个异常class not found: org.apache.log4j.Logger???

Servlet[jsp]的Servlet.service()引发了具有根本原因的异常无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/js

sqljdbc4.jar 用啥驱动

重启大法失效?详述Oracle11g因JDBC bug引发异常Library Cache Lock等

MySQL Connector/J 6.x jdbc.properties 配置, mysql-connector-java-6.0.4.jar 异常