如何在cmd中运行命令,并将其打开以允许输入? (Java)的

时间:2016-02-29 18:17:56

标签: java input cmd command

我正在制作一个Swing程序,它将用于使用G ++轻松运行C ++程序,但我仍然坚持实际运行该程序。我尝试使用Runtime.getRuntime()或类似的东西,但似乎没有用。而且,使用它只运行命令,并且不允许输入。显然,因为它将运行一个程序,它需要能够接收命令行输入,所以有没有办法通过打开cmd然后在该程序实例中执行命令来运行命令,允许用户输入内容?

3 个答案:

答案 0 :(得分:0)

看看ProcessBuilder类,我认为它可以满足您的要求:https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

答案 1 :(得分:0)

  

如何在cmd中运行命令,并将其打开以允许输入? (Java)的

首先,您是否正在使用main方法中的参数?

public static void main(String[] args) //<--- arguments will be send to args[x]
{

}

如果你希望你的程序能够接收参数,你必须处理那些收到的参数,如果没有,即使参数被传入。没有任何事情会发生。

示例:

class MyFullName{
    public static void main(String[] args){
        if(args.length() != 2)
            system.out.println("2 arguments needed");
        else
            System.out.println("Your fullname is: " + args[0] + " " args[1]);
    }
}

上面的示例是一个程序,它接收名字和姓氏并将它们组合在一起并打印出来。您键入的参数将传递到args字符串数组。

测试运行:

javac MyFullName.java
java MyFullName adam smith
Your fullname is adam smith

如果您使用的是Windows而不想在命令提示符下键入命令,则可以将这些代码放在批处理文件中。执行批处理文件将执行那些将启动程序的命令。

答案 2 :(得分:0)

此示例Java程序执行'dir'命令读取dir命令的输出打印结果。

import java.io.*; 

public class doscmd 
{ 
public static void main(String args[]) 
{ 
try 
{ 
Process p=Runtime.getRuntime().exec("cmd /c dir"); 
p.waitFor(); 
BufferedReader reader=new BufferedReader(new    InputStreamReader(p.getInputStream())); 
String line=reader.readLine(); 
while(line!=null) 
{ 
System.out.println(line); 
line=reader.readLine(); 
}} 
catch(IOException e1) {} 
catch(InterruptedException e2) {} 

System.out.println("Done"); 
}} 

价:http://www.javasamples.com/showtutorial.php?tutorialid=8