如何在Java程序中运行Java源代码
我已经编写了一些代码来编译Java源代码。然后生成.class文件。问题是如何运行它?
例如,我可以设置程序和类的名称,可以使用prog p = new
prog(),但是在这种情况下,类文件在编译之前尚不存在。不太确定该怎么办。有人可以给我建议吗?
顺便说一句,该类如下所示:
public void compile{ JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
int compilationResult = compiler.run(null, null, null, fileToCompile);
}
public void run(){
Prog prog = new Prog();
prog.run();
}
回答:
如果只想运行它,则可以使用Runtime.exec或ProcessBuilder启动Java进程
。这些将创建一个单独的Java进程来运行您的Java程序。这更可能是您想要的。您基本上可以做到:
>java someClass
从您的应用程序中。此链接可能会有所帮助。
如果您想实际加载类文件并在当前应用程序中使用它,我认为与此类似的事情或动态加载Java类应该有所帮助。基本上(直接从链接中进行一些修改):
public class MainClass { public static void main(String[] args){
ClassLoader classLoader = MainClass.class.getClassLoader();
try {
Class aClass = classLoader.loadClass("MyClass");
System.out.println("aClass.getName() = " + aClass.getName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
加载该类后,您将拥有一个Class对象,并且可以aClass
通过调用来创建该类的实例aClass.newInstance()
,这就像
MyClass newObj = new MyClass()
或者,您可以使用Class
对象公开的任何其他方法。
正如davmac指出的那样,以上代码示例假定正在加载的代码在应用程序的类路径中。如果要运行的类文件不在您的类路径中,则可能需要调查URLClassLoader
以上是 如何在Java程序中运行Java源代码 的全部内容, 来源链接: utcz.com/qa/397960.html