議論について多くの議論を見つけましたが、解決策はありません。
機能するために、jdbc ドライバーも含む単純なプラグイン (jar) を作成したいと考えています。このプラグインは、より大きなアプリ内で使用されます。
このように非常に単純なメインを作成すると:
public static void main(String[] args) {
URL url;
try {
File f = new File("mysql-connector-java-5.1.22.jar");
URLClassLoader child = new URLClassLoader(new URL[] { f.toURL() }, Plugin.class.getClassLoader());
Class classToLoad = Class.forName("com.mysql.jdbc.Driver", true, child);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
私はいつもこの例外を持っています:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:340)
Class.forName は、私のプラグイン クラスの同じパッケージにある jar を見つけることができないようです。
私は多くの解決策を試しましたが、誰もうまくいきません。直接参照せずにjarをロードすることは可能です(メインクラスの同じパッケージにあります)。
ありがとう