如何在JAVA中运行Windows命令并以字符串形式返回结果文本

如何在JAVA中运行Windows命令并以字符串形式返回结果文本,java,windows,Java,Windows,可能重复: 我正在尝试从JAVA控制台程序中运行cmd命令,例如: ver 然后将命令的输出返回到JAVA中的字符串中,例如输出: string result = "Windows NT 5.1" 看看java.lang.Runtime,或者更好 可能有助于您入门。您可以为此使用以下代码 import java.io.*; public class doscmd { public static void main(String args[])

可能重复:

我正在尝试从JAVA控制台程序中运行cmd命令,例如:

ver
然后将命令的输出返回到JAVA中的字符串中,例如输出:

string result = "Windows NT 5.1"

看看
java.lang.Runtime
,或者更好


可能有助于您入门。

您可以为此使用以下代码

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; 
                while((line = reader.readLine()) != null) 
                { 
                    System.out.println(line);
                } 

            }
            catch(IOException e1) {e1.printStackTrace();} 
            catch(InterruptedException e2) {e2.printStackTrace();} 

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

您可以执行以下操作:

String line;
Process p = Runtime.getRuntime().exec ("ver");
BufferedReader input =new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader error =new BufferedReader(new InputStreamReader(p.getErrorStream()));

System.out.println("OUTPUT");
while ((line = input.readLine()) != null)
  System.out.println(line);
input.close();

System.out.println("ERROR");
while ((line = error.readLine()) != null)
  System.out.println(line);
error.close();

在@RanRag的评论中,主要问题是Windows与Unix/Mac的对比

  • WINDOWS:exec(“cmd/c版本”)
  • UNIX风格:exec(“ver”)
您可以在java中使用java代码执行dos命令

Process p = Runtime.getRuntime().exec("cmd /C ver");
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()),8*1024);

BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));

// read the output from the command

String s = null;
System.out.println("Here is the standard output of the command:\n");
while ((s = stdInput.readLine()) != null) 
System.out.println(s.replace("[","").replace("]",""));

Output=
MicrosoftWindowsVersion6.1.7600

您需要使用
processp=Runtime.getRuntime().exec(“cmd/cver”)调用exec+1…在提出此问题之前,您应该搜索此代码。当我搜索stackoverflow时,我得到了以下结果。。。此链接将帮助您: