java -jar myapp.jar
包含ojdbc6.jar
但会引发以下异常
ClassNotFoundException: oracle.jdbc.driver.OracleDriver
我发现最适合我的帖子为个别班级显示了这个解决方案:
C:\Project\bin>java -classpath .;ojdbc6.jar MyApp
但我需要构建一个要部署的jar文件。每当我构建引用的jar包含时,classpath
的{{1}}最终会抛出相同的错误。 MyApp在项目的ojdbc6.jar
文件夹中使用ojdbc6.jar
在eclipse中工作正常。
答案 0 :(得分:0)
如果您使用的是Maven,我建议使用shade插件创建一个超级jar。 http://maven.apache.org/plugins/maven-shade-plugin/
这样您就可以确定没有丢失所需的库/ jar文件。
如果您不能/不想使用Maven,请提供您可以帮助调试问题的整个堆栈跟踪。
答案 1 :(得分:0)
将-verbose:class
添加到命令行以使JVM显示正在加载的类。如果您没有看到oracle.jdbc.driver.OracleDriver
打印出来,则可能找不到ojdbc6.jar。
答案 2 :(得分:0)
感谢大家的评论!
这有效:http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html
关于-C选项的其他帖子提示不适合jar中其他jar的classpath,而是在create jar语句中取出对ojdbc6.jar的引用,并在Manifest中使用Class-Path(行之间没有空格 - 那些由Stack的编辑添加:
清单 - 版本:1.0
Main-Class: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
此致 大通