我有两个文件,一个在我的本地机器中,另一个在共享文件夹中(来自另一台机器)。
我在本地机器上的类必须继承自共享文件夹中文件中的类。
如何执行此继承?
我尝试通过设置CLASSPATH=%CLASSPATH%;//(machineNo)/(foldername);
,但这不起作用。
我有两个文件,一个在我的本地机器中,另一个在共享文件夹中(来自另一台机器)。
我在本地机器上的类必须继承自共享文件夹中文件中的类。
如何执行此继承?
我尝试通过设置CLASSPATH=%CLASSPATH%;//(machineNo)/(foldername);
,但这不起作用。
可URLClassLoader
用于轻松开发能够从远程服务器加载类和资源的应用程序。首先,您需要定义要搜索类的 URL。任何以“/”结尾的 URL 都假定指向一个目录,否则假定 URL 指向一个 JAR 文件,该文件将根据需要打开。一旦构造了 URLClassLoader 的实例,loadClass(String name)
就使用 ClassLoader 类的方法来加载具有指定名称的类。一旦加载了一个类,就可以创建一个实例(这意味着将调用构造函数)。
import java.net.*;
import java.io.*;
public class MyLoader {
public static void main (String argv[]) throws Exception {
URLClassLoader loader = new URLClassLoader(new URL[] { new URL("http://www.javacourses.com/classes/") });
// Load class from class loader. argv[0] is the name of the class to be loaded
Class c = loader.loadClass (argv[0]);
// Create an instance of the class just loaded
Object o = c.newInstance();
}
}
你可以在这里阅读全文
如果继承是指扩展,那么仅仅加载类是不够的。
您将需要一些像cglib这样的字节码操作库来动态创建派生类。(并不是说这是一项艰巨的任务,但它有很多可能的陷阱,所以要小心:))