1

Java アプリケーションで Oracle9、10、および 11 に接続する必要があります。クライアントはアプリが実行される場所に常に存在し、アプリがユーザー名、パスワード、およびインスタンス (tnsnames.ora で指定) で動作するようにしたいためです。タイプの接続文字列を持つ oci ドライバーが必要です: jdbc:oracle:oci:@testora .Im ドライバー: oracle.jdbc.driver.OracleDriver を使用します。10g クライアントがあり、jdk1.5 を使用しています。クライアント lib パスから ojdbc14 jar を使用すると、アプリが実行されます。

しかし、ojdbc5 ドライバーを使用すると、アプリは Exception in thread "main" java.lang.UnsatisfiedLinkError: no ocijdbc11 in Java で失敗します。library.path 例外。

私が探しているのは、単一の jar (ojdbc5/ojdbc14) と、ローカル マシン (9/10/11) に存在するクライアントに接続するために oci ドライバーを使用する単一のドライバーをパッケージ化する方法です。これが私の方法です。それを好むでしょう。

これが不可能な場合は、UNIX ボックスで Oracle バージョンを検索し、正しい jar を選択してから、jar 形式のアプリを呼び出すときにクラスパスで使用できますか?

ありがとう、フェル

4

2 に答える 2

1

ojdbc5.jarは、Oracle 10または11gに接続している場合でも、jdk1.5.xで動作することを目的としています。ojdbc14.jarはjdk1.4.xを対象としています。

于 2009-12-14T18:11:30.703 に答える
1

java.lang.UnsatisfiedLinkError: java.library.path に ocijdbc11 がありません

これは、Java ライブラリ パスに DLL (ocijdbc11.dll) がないことを意味します。その DLL があることを確認し、次のようにプログラムを開始します。

java -Djava.library.path=C:\mydirwiththedll com.mypackage.MyProgram

于 2009-09-01T08:06:37.690 に答える