我正在创建一个小程序,通过使用GUI来完成一些工作。我现在拥有的是一个带有"启动"按钮的小程序,它可以启动基于CMD的应用程序。我需要做的是在CMD窗口中输入某个命令。我想添加一个按钮,为我填写这个命令。
这可能吗?
附言:CMD是Windows的命令提示符。
谢谢大家。
如果它是一个外部命令,则可以工作:
String command = "cmd"; //Replace with your command
Runtime.getRuntime().exec(command);
如果它是一个内部命令,那么这将不起作用,但有一个解决方法:创建一个包含命令的批处理文件,并将一个包含批处理文件路径的字符串作为参数。
Runtime.getRuntime().exec("Temp.bat");
或者,您可以使用以下方法以编程方式编写批处理文件:
private void batch(String commands){
try{
String filename = "Temp.bat";
File f = new File(filename);
PrintWriter writer = new PrintWriter(f);
writer.print(commands);
writer.close();
Runtime.getRuntime().exec(filename);
long x = getTime + 3000;
do{
//Wait
}while(getTime < x);
f.delete();
}catch(Exception ex){
ex.printStackTrace();
}
}
private long getTime(){
SimpleDateFormat datef = new SimpleDateFormat("yyyyDDDHHmmssSSS");
Date date = new Date();
return Long.parseLong("" + datef.format(date));
}
这取决于基于CMD的应用程序如何接收其输入。
如果它从CMD窗口的输入流接收输入,本文将解释如何获得对输入流的引用并向其发送消息:Java exec-使用Java ProcessBuilder和Process执行系统进程。
如果您的CMD窗口正在运行一个不接受输入的命令,并且您想执行另一个命令,那么我认为您必须在单独的CMD进程中运行第二个命令。