首页 文章

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

提问于
浏览
0

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

3 回答

  • 0

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

  • 0

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

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

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

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

    Example:

    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 字符串数组中 .

    Test run:

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

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

  • 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

相关问题