【发布时间】:2013-01-28 18:27:20
【问题描述】:
我正在用 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);
我重定向标准输出和错误,因为稍后应用程序会捕获它们以确定编译是否成功。有一个更好的方法吗?感觉有点草率,我想知道我是否忽略了什么。
【问题讨论】:
-
什么是IDE??您很可能不需要编写 C# 程序来运行 cmd 行编译器工具。最有可能的是,IDE 支持使用参数和整个九码运行自定义命令行命令的能力。这将允许您使用 java 编译器编译您的 java 代码。
-
doh,我错过了前两个词
I'm writing a...不知何故我将其解释为I'm writing in a。 -
现在我看到了票数接近的原因。 ...老实说,我强烈敦促你停止这种做法。在专业环境中,您不会有这种奢侈,只是决定您想要一个自定义 IDE 来使事情变得更方便......(如果它们最终会变得方便的话)而且您完全可以理解这句话“重新发明轮子”。
-
IDE 不仅仅是为了方便 - 它是一种学习体验。我意识到我无法编写 IDE 只是因为我不喜欢手头的那些——这是一个帮助我学习的简单宠物项目。它还需要我在其他主流 Java IDE 中无法获得的特定特性。
-
我认为如果它关闭,人们会重新打开它。