我正在用 C# 编写多语言 IDE。现在,它可以作为一个功能合理的编辑器。但是,我现在正在努力添加编译和运行 Java 代码的功能(我知道用 C# 编写它听起来很傻,但我更喜欢使用 C#,而且我需要 Java 支持学校课程)。
在此背景之后,问题来了:从 C# 编译 Java 代码的最佳方法是什么?现在,我正在使用该System.Diagnostics.Process
课程。基本上,我调用编译器的方式与从命令行调用 javac 的方式相同。这是我当前实现的一个粗略示例:
ProcessStartInfo buildInfo = new ProcessStartInfo();
buildInfo.WorkingDirectory = Path.GetDirectoryName(sourcePath);
buildInfo.RedirectStandardOutput = true;
buildInfo.RedirectStandardError = true;
buildInfo.UseShellExecute = false;
Process buildProcess = Process.Start(buildInfo);
我重定向标准输出和错误,因为稍后应用程序会捕获它们以确定编译是否成功。有一个更好的方法吗?感觉有点草率,我想知道我是否忽略了什么。