如何将java.io.File转换为java.lang.Class来运行它?

时间:2010-10-29 20:29:34

标签: java class file jar

我有一个程序,允许用户选择任何.class.jar文件并运行它。问题是,要运行它,我需要使用java.io.File之外的其他内容,这是JFileChooser返回的内容。如何将java.io.File变为java.lang.Classjava.util.jar.JarFile

2 个答案:

答案 0 :(得分:2)

如果您要加载的类有File个对象,则可以使用URLClassLoader加载该类。 File对象可以提供URL

答案 1 :(得分:0)

问题是您需要从类本身推断出类路径。这不是最简单的事情。

最好的办法是使用asm.objectweb.org等工具解析文件,找到该类的包,并从类的包和文件名的组合中推断出类路径根。即使这样,你也假设这个类只使用这个文件目录中的类。