JavaCompiler を使用して、実行時に Web アプリケーション内から CustomProcessor.java をコンパイルしています
package com.notmycompany;
import com.mycompany.Processor;
import com.mycompany.Event;
public class CustomProcessor extends Processor {
@Override
public void process( Event evt) {
// Do you own stuff
System.out.println( "My Own Stuff");
}
}
コンパイルはうまくいき、最終的にはクラスファイルを使用してロードしようとしていますURLClassLoader
URL[] urls = new URL[]{ new URL("file://d:/temp/") };
URLClassLoader ucl = new URLClassLoader(urls);
Class clazz = ucl.loadClass("com.notmycompany.CustomProcessor");
問題は、アプリケーションの他の場所で使用している をヒットしClassNotFoundException
てProcessor
いることです (そこにあることがわかっているように)。実行時に表示さ
れるようにするには、何をする必要がありcom.mycompany.Processor
ますか?
Caused by: java.lang.ClassNotFoundException: com.mycompany.Processor
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 30 more
ありがとう。