我一直在使用一個對Oracle數據庫執行多個查詢的Java程序。我目前正在使用jdbc瘦客戶端(ojdbc7.jar)。對於我使用NetBeans的IDE,並在我的PC上調試或運行JAR,我沒有遇到任何錯誤。運行在Linux環境下生產然而這JAR,報告了以下錯誤:JDBC部署錯誤 - NoClassDefFound
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/OracleDriver
[...]
Caused by: java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
的代碼我用得到的連接是:
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
Connection conn = null;
Properties connectionProps = new Properties();
connectionProps.put("user", DBUsername);
connectionProps.put("password", DBPassword);
conn = DriverManager.getConnection(JDBCConnection, DBUsername, DBPassword);
隨着數據庫用戶名/密碼和JDBCConnection所有被本地存儲。添加額外的打印報表顯示了不及格線爲:
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
我正在圖書館在我的項目已經ojdbc7.jar包括在內。檢查生成>打包下的項目屬性,選中「複製從屬庫」。我的期望在這個點上是庫應該包含在我的jar文件中。
我還測試:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
同樣,我只使用的Class.forName()。我嘗試了同時使用。
Class.forName("oracle.jdbc.driver.OracleDriver");
閱讀其他問題,我理解這可能是與我的類路徑的問題。在Linux環境下,我試圖運行這,我的類路徑設置爲ocjdb7.jar的確切位置沒有運氣:
export CLASSPATH=/<Directory Location>/ocjdb7.jar
我已經試過這多種配置,例如Linux環境在問題中已經有一個類路徑包括ocjdb6.jar,所以我重新編譯這個版本,設置類路徑,並進行測試。報告相同的錯誤消息。我錯過了包含此驅動程序的必要設置嗎?在一個同事的Windows 7桌面上測試,發生了同樣的錯誤,這似乎表明這仍然是一個設置問題。
感謝ujulu,你的評論中是否應該有鏈接? – CCrew
對不起,我以爲我鏈接到文檔。 [這裏](https://netbeans.org/kb/articles/javase-deploy.html)是我想鏈接到的文件。 – ujulu
欣賞它!我會通讀。 – CCrew