我似乎无法弄清楚的三个问题。
1)我想创建一个使用processbuilder的新进程来使它成为cat C:\ xxx \ xxx.java运行java文件,但我似乎无法实现它。
2)尝试编译时,我的数组出错了
3)当我分别键入“清除”和“退出”时,我无法找出一个清除屏幕或关闭窗口的方法。 system.exit(O)似乎只关闭虚拟机而不是实际关闭窗口。
这是我的代码,我很抱歉是个傻瓜,但我需要完成这件事,我没有人要问!
import java.io.*;
public class SimpleShell
{
public class JavaStringHistory
{
private String[] history = new String[4];
}
public static void main(String[] args) throws
java.io.IOException {
String commandLine;
BufferedReader console = new BufferedReader
(new InputStreamReader(System.in));
//Break with Ctrl+C
while (true) {
//read the command
System.out.print("shell>");
commandLine = console.readLine();
//if just a return, loop
if (commandLine.equals(""))
continue;
//history
if(commandLine.equals('*'))
{
//new class HistoryStringArray();
// {
// history[4] = history[3]
// history[3] = history[2]
// history[2] = history[1]
// history[1] = history[0]
// history[0] = commandLine
}
//help command
if (commandLine.equals("help"))
{
System.out.println();
System.out.println();
System.out.println("Welcome to the shell");
System.out.println("Written by: Brett Salmiery");
System.out.println("CIS 390 - Dr. Guzide");
System.out.println("--------------------");
System.out.println();
System.out.println("Commands to use:");
System.out.println("1) cat prog.java");
System.out.println("2) exit");
System.out.println("3) clear");
System.out.println();
System.out.println();
System.out.println("---------------------");
System.out.println();
}
if (commandLine.equals("clear"))
{
if ( int cls = 0; cls < 10; cls++ )
{
System.out.print();
}
}
if (commandLine.endsWith(".java"))
{
if(commandLine.startsWith("cat"))
{
System.out.println("test");
ProcessBuilder pb = new ProcessBuilder();
//pb = new ProcessBuilder(commandLine);
}
else
{
System.out.println("Incorrect Command");
}
}
if (commandLine.equals("exit"))
{
System.out.println("...Terminating the Virtual Machine");
System.out.println("...Done");
System.out.println("Please Close manually with Options > Close");
System.exit(0);
}
}
}
}
答案 0 :(得分:1)
if ( int cls = 0; cls < 10; cls++ )
我认为你的意思是for
:)
至于历史机制:你有一个类JavaStringHistory
,它只有一个私有成员(不是一个糟糕的开始),但是没有方法可以在历史记录中添加条目或从历史记录中检索条目。所以你应该写那些方法。 (您也可以将成员公开并直接存储到已注释掉的代码中,但是您已经有了一个类,也可以完成抽象。)
至于ProcessBuilder,我不知道它是如何工作的。我不确定你想用它做什么,但是你可以使用FileReader
类来读取列出的源文件并将其打印到终端。 (我可能还建议尝试使用String.split
方法来拉开输入字符串并单独查看每个部分。)
关闭终端窗口?呃。不知道那里。大多数教授都愿意认识到有时候特定环境会发生愚蠢的事情。
希望这有助于您入门。