gpt4 book ai didi

java - 以编程方式运行 Java 程序

转载 作者:行者123 更新时间:2023-12-01 06:58:08 24 4
gpt4 key购买 nike

在java中是否可以以编程方式运行java程序?

例如,加载一个可运行的类并作为线程运行?

编辑

我发现我应该更精确:)

我有一个 .class 文件,我想读取并运行它。

问题是我不知道它是什么类型的程序,只知道它是一个有效的类文件。我想要做的是能够运行 .class 文件,就像我自己编写并编译它一样。

最佳答案

也许是这样的?

 new Thread(new Runnable() {
@Override
public void run() {
MyRunnableClass.main(new String[]{});
}
}).start();

可运行类是具有静态 main 方法的普通类。我们可以像调用任何其他方法一样调用该方法。如果我们在线程中执行此操作,那么我们将得到类似于 JVM 在启动应用程序时执行的操作。

<小时/>

带有反射的完整版本:

public static void start(final String classname, final String...params) throws Exception {  // to keep it simple
final Class<?> clazz = Class.forName(classname);
final Method main = clazz.getMethod("main", String[].class);

new Thread(new Runnable() {
@Override
public void run() {
try {
main.invoke(null, new Object[]{params});
} catch(Exception e) {
throw new AssertionError(e);
}
}
}).start();
}

像这样使用

start("com.example.myApp", "param1", "param2");

它将在新线程中执行该类的 main 方法。

关于java - 以编程方式运行 Java 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6055725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com