0

マシンの外部で実行できるようにするために、ojdbc14.jar を含む jar ファイルをエクスポートしようとしています。私は自分のjarの現在のエクスポートで成功することができますが、自分のコンピューターでのみ、他の人が試してみるとエラーで失敗します: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriverwhen 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 などに関連していたため、問題をどのように解決したかをよりよく説明しています。

4

1 に答える 1

1

jar内に他のjarを含めることができるとは思いませんでした(それはあなたがやろうとしていることですよね?)ojdbc14.jarがクラスパスのどこかにあるため(つまり、スタンドアロンファイルとして)、マシンで動作していると思われます、あなたの瓶に含まれるのではなく)

これがネイサンに役立つことを願っています

于 2012-06-11T20:01:47.137 に答える