繁体   English   中英

java -jar myapp.jar包含ojdbc6.jar但抛出ClassNotFoundException

[英]java -jar myapp.jar includes ojdbc6.jar but throws ClassNotFoundException

java -jar myapp.jar包含ojdbc6.jar但抛出以下异常

ClassNotFoundException: oracle.jdbc.driver.OracleDriver

我发现最适合我的帖子为个别班级显示了这个解决方案:

C:\Project\bin>java -classpath .;ojdbc6.jar MyApp

但是我需要构建一个要部署的jar文件。 每当我构建引用的jar包含时, ojdbc6.jar classpath ojdbc6.jar抛出相同的错误。 MyApp在项目的Referenced Libraries文件夹中使用ojdbc6.jar在eclipse中工作正常。

如果您使用的是Maven,我建议使用shade插件创建一个超级jar。 http://maven.apache.org/plugins/maven-shade-plugin/

这样您就可以确保没有丢失所需的库/ jar文件。

如果您不能/不想使用Maven,请提供您可以帮助调试问题的整个堆栈跟踪。

在命令行中添加-verbose:class ,让JVM显示正在加载的类。 如果您没有看到打印出oracle.jdbc.driver.OracleDriver ,则可能找不到ojdbc6.jar。

感谢大家的意见!

这有效: http//docs.oracle.com/javase/tutorial/deployment/jar/downman.html

关于-C选项的其他帖子提示不适合jar中其他jar的classpath,而是在create jar语句中引用ojdbc6.jar并在Manifest中使用Class-Path(行之间没有空格 - 这些是由Stack的编辑):

清单 - 版本:1.0

主类:MyApp

Class-Path:ojdbc6.jar

创建者:1.7.0_71(Oracle Corporation)

现在创建jar语句如下所示:

jar cfm myjar.jar MANIFEST.MF MyApp.class Other1.class Other2.class Other3.class

此致,大通

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM