如何使用类加载器下载.class文件并将其加载到jvm中,我编写了一个简单的代码模拟下载.class文件,我试图将其加载到JVM中
public class face {
public static void main(String[] args) throws IOException,
ClassNotFoundException {
File f = new File("Task.class");
int count;
byte[] buffer = new byte[1024];
DataInputStream dis = new DataInputStream(new FileInputStream(f));
StringBuilder all = new StringBuilder();
while ((count = dis.read(buffer)) > 0) {
// System.out.write(buffer, 0, count);
all.append(buffer);
// System.out.flush();
}
File b = new File("Task.class");
FileOutputStream fos = new FileOutputStream(b);
DataOutputStream dos = new DataOutputStream(fos);
dos.write(all.toString().getBytes());
ClassLoader lod = face.class.getClassLoader();
lod.loadClass(b.getAbsolutePath());
}
}
答案 0 :(得分:0)
使用Class.forName(<package_qualified_class_name>)
答案 1 :(得分:0)
首先,我想在这里建议一长串的建议,但你已经设法将一大堆错误塞进一小段代码中。
我建议不要做这些事情
我建议您尝试使用一个班轮来首先加载课程并显示此作品。该类应该出现在您的类路径中,当您写入该文件时,您应该将其写入适合该包的目录。
您可以在类路径中添加http://yourserver/basepath
而不是执行所有操作,而是从Web服务加载类。即,您可以在不编写任何代码的情况下执行此操作。