web-dev-qa-db-ja.com

実行時に外部jarファイルを動的にClassPathに追加する方法

Java可能な場合はコードを使用してjarファイルをプロジェクトのクラスパスに動的に追加したい。外部jarファイルを使用してそれらのクラスをロードし、後でBeanとして実行する(Springフレームワーク) 。

ありがとう:)

20
EL Kamel
URLClassLoader child = new URLClassLoader (myJar.toURL(), this.getClass().getClassLoader());
Class classToLoad = Class.forName ("com.MyClass", true, child);
Method method = classToLoad.getDeclaredMethod ("myMethod");
Object instance = classToLoad.newInstance ();
Object result = method.invoke (instance);

ソース: https://stackoverflow.com/a/60775/1360074

13

このようなことを試すこともできますが、JARsが正確にどこにあるかを知る必要があります。

URLClassLoader cl = URLClassLoader.newInstance(new URL[] {myJarFiles});
Class myClass = cl.loadClass("com.mycomp.proj.myclass");
Method printMeMethod = myClass.getMethod("printMe", new Class[] {String.class, String.class});
Object myClassObj = myClass.newInstance();
Object response = printMeMethod.invoke(myClassObj, "String1", "String2");
3
SudoRahul