2013-09-05 48 views
0

我在嘗試在我的代碼中使用Connector/J JDBC驅動程序時遇到問題。類路徑只包含正在運行的文件

我寫的代碼在使用DriverManager.getConnection()加載驅動程序之前使用Class.forName("com.mysql.jdbc.Driver").newInstance()加載類。

這會導致com.mydql.jdbc.Driver的ClassNotFoundException異常。我有用於mysql連接器的二進制JAR文件,mysql-connector-java-5.1.26-bin.jar

我的代碼通過在Netbeans中構建而打包到JAR文件中。

運行的代碼我使用以下

java -classpath "/path/to/mysql-connector-java-5.1.26-bin.jar" -jar MyJarFile.jar 

這給了異常:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

添加System.out.println(System.getProperty("java.class.path"));該程序只打印MyJarFile.jar的開始。

我已經嘗試使用導出將jar文件添加到CLASSPATH變量,並將-classpath標誌的最後部分設置爲lib/*,但結果相同。

我試着從.class文件運行程序,而不是。它抱怨無法找到或加載主類。只有在類路徑中使用通配符且MyJarFile.jar位於該位置時,它纔會運行。不過,它只會在加載驅動程序時掛起。

有沒有人有什麼想法是怎麼回事?

回答

0

儘量不要混用-cp和-jar選項,這可能工作:

java -cp "mysql-connector-java-5.1.26-bin.jar:MyJarFile.jar" my.package.Main 
窗戶

在* nix或

java -cp "mysql-connector-java-5.1.26-bin.jar;MyJarFile.jar" my.package.Main 

其中my.package.Main是你的主類。

+0

這適用於從終端加載程序。現在解決爲什麼它掛在'DriverManager.getConnection()'。謝謝! –

相關問題