내가 자바에서 최고라고 말하지 말고 시작하자. 정말 간단한 것을 놓친 것 같다. ...이 클래스 로더 문제를 어떻게 해결할 수 있습니까?
나는 플러그인 시스템에서 일하고 있으며 모든 것이 완벽하게 작동하지만, 실제로 애플릿을 그 외부로 실행합니다.
.class
디렉토리에서 파일을로드하고 실행하려고하는데 왜 작동하지 않는지 알기 때문에 해결 방법을 모릅니다.
문제는 이클립스 클래스 경로에 애플릿 자체를 참조하고 있지만,이 일식의 외부 클래스 경로에서 참조되지 않는 것 그리고 내가 단지를 통해 그것을 실행할 수 있습니다, -cp
또는 -classpath
에 액세스 할 수없는 것입니다 고정 클래스 경로로 항아리를로드하도록 설계된 실행기.
이 문제를 어떻게 해결할 수 있을지에 대한 아이디어가 있으십니까?
로더 코드 :
final ClassLoader loader = new URLClassLoader(new URL[] { new File("C:/Plugin/Directory/").toURI().toURL() });
final Class<?> c = loader.loadClass("PluginFile");
Object s = c.newInstance();
s.getClass().getMethod("onLoad").invoke(s);
플러그인 코드 :이 문제는 이제 일주일 동안 벽을 날 운전하고있다
import net.plugintest.pluginsystem.*;
public class PluginFile extends ClientPlugin
{
private String Author = "Plugin Author";
private String Description = "Plugin Description"
private Player p = new Player();
@Override
public void onLoad()
{
p.talk("Testing");
}
}
, 내가 무엇을 해야할지하지 않습니다. :/
URLClassLoader의 사용 /stackoverflow.com/questions/252893/how-do-you-change-the-classpath-within-java –
예외는 무엇입니까? –
'java.lang.ClassNotFoundException : net.plugintest.pluginsystem.ClientPlugin' – user1728017