我正在用 Java (Swing) 构建一个 GUI,我必须从中执行 Java 代码。为了测试简单的代码,比如用 Java 打印 HelloWorld 就可以了。
我看过论坛的问题,我只知道我必须调用操作系统(我使用的是 Windows7)来执行该编译任务。
谢谢你。
PS:我尝试过 Runtime.getRuntime().exec() 命令,但没有成功。
我正在用 Java (Swing) 构建一个 GUI,我必须从中执行 Java 代码。为了测试简单的代码,比如用 Java 打印 HelloWorld 就可以了。
我看过论坛的问题,我只知道我必须调用操作系统(我使用的是 Windows7)来执行该编译任务。
谢谢你。
PS:我尝试过 Runtime.getRuntime().exec() 命令,但没有成功。
您可能想查看编译代码部分的java 编译器 api,runtime.exec() 应该使用正确的命令来启动应用程序。
如果您使用的是 IDE,则不需要调用这些命令。
编译:
跑:
……
如果你想使用 Runtime.getRuntime().exec()。下面是一个使用 Runtime.getRuntime().exec() 的例子。
import java.io.*;
public class TestExec {
public static void main(String[] args) {
try {
Process p = Runtime.getRuntime().exec("cmd /C dir");
BufferedReader in = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
“这只是运行 dir 命令,捕获其输出并将其复制到程序 stdout。不是很令人兴奋,但它显示了使用 Runtime.exec() 的基本部分。您还可以打开进程的输出和错误流。“
所以你可以使用 Runtime.getRuntime().exec() 发送命令,你可以使用我上面写的 javac 或 java 命令。
要进行编译,您需要安装包含 Java 编译器的 JDK javac
。您可以通过 Runtime.getRuntime().exec() 调用 javac 来编译 Java 源代码,然后加载它。
或者,您可以使用 Java 编译器 API。可以通过以下方式检索主编译器 API javax.tools.ToolProvider.getSystemJavaCompiler();
另请参阅这篇文章:Java 6.0 编译器 API
在SSCCE 基于文本的编译器 (STBC)中有一个使用JavaCompiler
API 的示例。请务必阅读与在运行时类路径上获取 a 相关的页面。tools.jar
STBC 是开源的。