簡體   English   中英

無法使用其他庫/ jar文件,javac類路徑進行編譯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM