【发布时间】:2011-08-17 00:48:15
【问题描述】:
我正在编写一个使用 Oracle JDBC 驱动程序的 java 程序。我已经在我的类路径中设置了它。当我在我的 IDE 中运行程序(作为库添加为 jdbc)时,程序运行良好。当我尝试部署它时,它完全忽略了类路径中的列表并给了我一个 NoClassDefFoundError。
我想使用客户端的 JDBC 驱动程序(已安装),但不提供我自己的。我从 JDeveloper 打包程序,部署为 JAR 文件。
运行:java -jar test.jar
当我将库放在 %JAVA_HOME%/lib/ext 中时,它可以正常工作。
有人知道如何解决这个问题吗?
【问题讨论】:
-
你能告诉我们你是如何在命令行上运行文件的吗?
-
您如何准确部署它?你如何包装它?你如何启动它?请注意,如果您使用
-jar开关,那么在命令行和环境变量中指定的任何类路径都将被忽略。 只有清单的Class-Path属性是相关的。 -
那么我如何设置 Class-Path 以便它在我的环境类路径中查找?或者我可以运行 java -jar 以外的 jar 吗?
-
只需将您的 jar 与您的应用一起提供。这是完全有效的。
-
@Nishant 也许是这样,但是 java 有一个类路径,并且 oracle 的安装程序在每次安装时都提供一个工作 jdbc。我们倾向于使用类路径中已经安装的 jdbc。