Java Learner IDE






3.34/5 (10投票s)
一个单窗口 Java Learner IDE,使用 C#。

引言
我当时正在为一个C++ DOS应用程序制作一个处理器。这启发了我制作这个工具。这个工具不是一个专业的工具,但展示了一个使用System.Diagnostics
命名空间的例子。使用这个工具,你可以编写小的基于控制台的Java程序,编译并运行。这只是一个实际学习Java的方法。
必备组件
是的,要学习 Java - 你必须首先安装 Java SDK,然后你需要将你的 javac.exe 和 java.exe 的路径添加到你的 path
环境变量中,如果你还没有这样做的话。这个应用程序会检查它是否正常。如果出现问题,它会给你消息:“Java 没有安装或未在 PATH 变量中找到”。 同时,编译、运行和编译 & 运行按钮将被禁用。
工作流
当你调用应用程序时,Java 检查将在 Form1_Load
事件中发生。我使用的方法是 CheckIfJavaInstalled()
。 没有系统级别的任务在执行来检查 Java 是否已安装。 它只是简单地检查 path
环境变量是否包含单词 'java
'。
private bool CheckIfJavaInstalled()
{
bool flag = true;
if (Environment.GetEnvironmentVariable("path").ToLower().IndexOf("java") == -1)
{
flag = false;
}
return flag;
}
在主窗口(好吧,只有一个窗口;)),我使用了一个分割容器,两个文本框,一个面板和三个按钮。两个文本框都启用了多行。一个用于编写 Java 代码,另一个用于显示状态消息和程序输出。
'编译' 按钮将首先把当前显示的代码保存到名为 test.java 的文件中 (函数: SaveFile()
)。 这是因为 javac.exe 需要一个 Java 程序文件来编译。 保存后,它调用函数 CompileJava()
。 这又调用了一个函数 Execute(@"javac.exe", "test.java")
。 我将此写成一个单独的方法,因为我想对 Runjava()
方法也使用相同的方法。
这是代码的样子
private bool Execute(string filename, string arguments)
{
bool flag = true;
Process p = new Process();
p.StartInfo.FileName = filename;
p.StartInfo.Arguments = arguments;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.ErrorDialog = false;
p.StartInfo.CreateNoWindow = true;
p.Start();
p.WaitForExit();
string err = p.StandardError.ReadToEnd();
string output = p.StandardOutput.ReadToEnd();
string str = err + output;
if (output.Length == 0)
{
if (err.Length > 0)
{
str += "Status: Failed";
flag = false;
}
else
{
str += "Status: Success";
}
}
txtOutput.SelectionLength = txtOutput.Text.Length;
txtOutput.SelectedText = str + "\r\n--------------------------------------\r\n";
return flag;
}
如果你是初学者,你可能想知道 SelectectionLength
和 SelectedText
是什么意思。这两行代码用于移动状态文本框的光标以滚动到底部。
System.Diagnostics.Process
用于调用命令行应用程序 javac.exe 和 java.exe,并将输出从控制台重定向到我们应用程序的状态文本框。
问题?
正如我之前提到的 - 这不是一个专业的软件,而是一个业余爱好程序。而且,我写得太快了,可能只用了 30 分钟或更少的时间。 因此,没有异常处理,设计,文档/帮助等。
历史
- 2007 年 11 月 7 日:初始发布