gpt4 book ai didi

java - 无法使用附加库/jar 文件、javac 类路径进行编译

转载 作者:行者123 更新时间:2023-12-01 05:48:13 26 4
gpt4 key购买 nike

我正在尝试使用 Oracle 中的 ojdbc6.jar 通过 javac 编译代码。

我的源代码在“src”中,我的 .class 在“bin”中,我的“jar”在 include 中。

我当前的 javac 命令是:

javac -cp ".;./includes/ojdbc6.jar" src/*.java -d bin

这一直有效,直到我将驱动程序导入到我的源文件之一中。现在我得到:

javac -cp ".;./includes/ojdbc6.jar" src/*.java -d bin
src/OracleSingleton.java:1: package oracle.jdbc.driver does not exist
import oracle.jdbc.driver.OracleDriver;

我确信问题出在我的类路径上,不知道如何解决这个问题。我已手动检查该文件是否存在,并且确实存在。

同时鉴于我还没有做到这一点,我不妨先考虑下一个问题,在运行程序时我是否也必须指向这个jar?如果是这样怎么办。

非常感谢

最佳答案

我不确定我是否看到了问题,但这里有一个可能会说明问题的工作示例。我找到司机了here .

import java.sql.*;
import java.util.*;

class DriveTest {
public static void main (String args [])
throws SQLException, ClassNotFoundException {
System.out.println("Current JDBC Drivers: "
+ System.getProperty("jdbc.drivers"));
Enumeration e = DriverManager.getDrivers();
while (e.hasMoreElements()) {
System.out.println(e.nextElement());
}
}
}
$ javac -cp .:ojdbc6.jar DriveTest.java $ java -cp .:ojdbc6.jar DriveTestCurrent JDBC Drivers: nulloracle.jdbc.OracleDriver@2666e815$ jar tf ojdbc6.jar | grep OracleDriveroracle/jdbc/OracleDriver.classoracle/jdbc/driver/OracleDriver$1.classoracle/jdbc/driver/OracleDriver.classoracle/jdbc/driver/OracleDriverExtension.class

附录:

仔细观察,DriverManager Service Provider机制指定oracle.jdbc.OracleDriver。您应该使用它而不是 oracle.jdbc.driver.OracleDriver

$ cat META-INF/services/java.sql.Driver oracle.jdbc.OracleDriver

关于java - 无法使用附加库/jar 文件、javac 类路径进行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5359274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com