Java 忽略类路径

2022-09-04 06:47:23

我正在编写一个使用Oracle JDBC驱动程序的java程序。我已经在我的类路径中设置了它。当我在IDE中运行程序(作为jdbc添加为库)时,程序运行良好。当我尝试部署它时,它完全忽略了classpath中的列表,并给了我一个NoClassDefFoundError。

我想使用客户端的 JDBC 驱动程序(已安装的驱动程序),并且不提供我自己的驱动程序。我从JDeveloper打包程序,部署为JAR文件。

运行方式:java -jar test.jar

当我将库放在%JAVA_HOME%/lib/ext中时,它可以正常工作。

有人知道如何解决这个问题吗?


答案 1

当您使用 运行时,将忽略类路径。java -jar

您需要使用清单属性。Class-Path

http://download.oracle.com/javase/tutorial/deployment/jar/downman.html

指定要包含在小程序或应用程序的清单文件的“类路径”标头字段中的类。类路径标头采用以下形式:

Class-Path: jar1-name jar2-name directory-name/jar3-name

http://download.oracle.com/javase/1.4.2/docs/tooldocs/linux/java.html

-罐

...

使用此选项时,JAR 文件是所有用户类的源,而其他用户类路径设置将被忽略。


答案 2

推荐