来自远程目录的Java Class.forName()

kaj*_*acx 5 java class classpath classloader classnotfoundexception

我目前正在加载Java类Class.forName()来加载它.

clazz = Class.forName("interfaces.MyClass");
Run Code Online (Sandbox Code Playgroud)

但是现在我想从不同的目录加载类,我试图设置classpath

clazz = Class.forName("-cp \"C:/dir\" distantinterfaces.DistantClass");
Run Code Online (Sandbox Code Playgroud)

没有成功ClassNotFoundException.远程班级的完整路径是:

C:/dir/distantinterfaces/DistantClass.class
Run Code Online (Sandbox Code Playgroud)

And*_*son 9

使用一个URLClassLoader.代码可能是这样的:

File f = new File("C:/dir");
URL[] cp = {f.toURI().toURL()};
URLClassLoader urlcl = new URLClassLoader(cp);
Class clazz = urlcl.loadClass("distantinterfaces.DistantClass");
Run Code Online (Sandbox Code Playgroud)