マシンの外部で実行できるようにするために、ojdbc14.jar を含む jar ファイルをエクスポートしようとしています。私は自分のjarの現在のエクスポートで成功することができますが、自分のコンピューターでのみ、他の人が試してみるとエラーで失敗します: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
when it attempts to callClass.forName
これに関して SO に関する多くの同様の質問を見てきましたが、どの質問にも正確な問題があるようには見えず、解決策も機能していません。
クラス:
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」だけが含まれている場合、jar は私のローカル マシンでのみ動作します。他の 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
アップデート:
この質問は、Jar-within-Jars、実行可能 jar などに関連していたため、問題をどのように解決したかをよりよく説明しています。