私の Java プロジェクトでは、H2 インメモリ データベースを使用しています。このデータベースでは、アプリケーションを初期化するときに JDBC ドライバーをロードする必要があります。H2 .jar ファイルを動的にロードする必要があるため、次のようにします。
String classname = "org.h2.Driver";
URL u = new URL("jar:file:libs/h2.jar!/");
URLClassLoader ucl = new URLClassLoader(new URL[] { u });
Driver d = (Driver) Class.forName(classname, true, ucl).newInstance();
DriverManager.registerDriver(new DriverShim(d));
H2 .jar ファイルを Java ソース コード フォルダーの外側の「libs」フォルダー (つまり、Eclipse では、この「libs」ディレクトリは「src」フォルダーと同じレベルにあります) に入れると、このアプローチは正常に機能します。 . ただし、残念ながら、この H2 .jar ファイルをソース コード フォルダー ツリー内のメイン クラス フォルダーの下のフォルダーに配置する必要があります。
たとえば、私の Java パッケージ構造は Eclipse では次のようになります。
<project>/src/my/app/MyApp.java // main class of my application
<project>/src/my/app/sub/package/h2.jar // how to access this?
<project>/libs/h2.jar // loading from here works
これがばかげていることはわかっていますが、残念ながら、この奇妙な設定で作業する必要があります。しかし、私が知らないこと: このセットアップで作業するために、Java コード (上記にリストされている) を編集するにはどうすればよいでしょうか?
編集:これは Eclipse の外部でも機能する必要があるため、JAR ファイルを Eclipse の Java ビルド パスに追加することはできません。
EDIT2:「jar:file:my/app/sub/package/h2.jar!/」をロードしようとしましたが、うまくいきませんでした。
すべての役立つアイデアを前もってありがとう!
よろしく、 マティアス