![](/img/trans.png)
[英]Compile and run with javac and java using classpath classes in jar
[英]Unable to compile using additional library/jar file, javac classpath
我正在尝试使用来自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吗? 如果可以的话。
非常感谢
我不确定是否看到了问题,但这是一个可行的示例,可能会引起一些启发。 我把司机送到了 。
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 DriveTest Current JDBC Drivers: null oracle.jdbc.OracleDriver@2666e815 $ jar tf ojdbc6.jar | grep OracleDriver oracle/jdbc/OracleDriver.class oracle/jdbc/driver/OracleDriver$1.class oracle/jdbc/driver/OracleDriver.class oracle/jdbc/driver/OracleDriverExtension.class
附录:
仔细观察, DriverManager
Service Provider机制指定了oracle.jdbc.OracleDriver
。 您应该使用它代替oracle.jdbc.driver.OracleDriver
。
$ cat META-INF/services/java.sql.Driver oracle.jdbc.OracleDriver
我认为您应该使用-classpath而不是cp,这应该可以解决问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.