如何在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

回到顶部