我試圖導出一個包含ojdbc14.jar的jar文件,以允許在我的機器外部執行。我可以與目前的我罐子的出口做得很成功,但只有我的電腦上,當別人嘗試失敗,錯誤:java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
當它試圖調用Class.forName
在其他機器上的jar中找不到Oracle驅動程序
我見過很多類似的問題上,使得涉及這一點,但沒有一個問題似乎有確切的問題,並且解決方案也不起作用。
類:
InputStream inputStream = JdbcConnection.class.getClassLoader().getResourceAsStream("properties/jdbc.properties");
try {
PROPERTIES.load(inputStream); //Load the jdbc properties
//System.out.println(properties.getProperty("jdbc.driverClassName")); <-- this prints out the correct output`
Class.forName(PROPERTIES.getProperty("jdbc.driverClassName")).newInstance(); //Load the oracle driver
清單:(我將ojdbc14.jar位於lib中,但罐子只會如果只是 「ojdbc14.jar的」 我的本地機器上工作包括,在其他罐子沒有與提供的路徑的問題,不知道這是很重要的)
Manifest-Version: 1.0
Main-Class: JdbcConnection
Class-Path: lib/ojdbc14.jar ojdbc14.jar extrsrcs/kxml2-2.3.0.jar extrsrcs/xstream-1.4.2.jar src/properties/jdbc.properties
UPDATE:
更好This question解釋我如何解決我的問題,因爲它涉及到將罐中,罐,罐子可執行文件,等
的Java不能從一個罐子內部的JAR加載類。就這麼簡單。 jar不能放在其他jar文件中。 –
這就是它?這沒有解決方法? – JWiley
有解決方法,它們都很難看。你爲什麼不簡單地壓縮整個目錄結構,包含一個簡單的.bat/.sh文件,你只需要雙擊它?有關如何使用jar文件和清單,請參閱http://docs.oracle.com/javase/tutorial/deployment/jar/index.html。 –