0

JavaからWindowsコマンドラインコマンドを実行し、結果をJavaに返したいと思います。これは可能ですか?

たとえば、私は次のことをしたいと思います

オブジェクトreturnValue=runOnCommandLine( "wmic cpu get LoadPercentage"); //この場合、returnValueは文字列としてのCPU負荷率です

編集:私はこれを機能させることができました

InputStream inputStream = new ProcessBuilder("wmic", "cpu", "get", "status").start().getInputStream();
StringWriter writer = new StringWriter();
IOUtils.copy(inputStream, writer);
String theString = writer.toString();
System.out.println("My string: " + theString);
4

3 に答える 3

2

必要なデータはcommandOutputです。

    String cmd = "wmic cpu get LoadPercentage";
    ProcessBuilder pb = new ProcessBuilder(cmd);
    pb.redirectErrorStream(true);
    Process p = pb.start();
    BufferedReader stdin = new BufferedReader(
                          new InputStreamReader(p.getInputStream()));
    StringBuilder commandOutput = new StringBuilder();
    String line;
    while ((line = stdin.readLine()) != null) {
      commandOutput.append(line);
    }
    int exitValue = -1;
    try {
     exitValue = p.waitFor();
    } catch (InterruptedException e) {
    // do something here   
    }
于 2013-02-06T20:57:52.907 に答える
0

ProcessBuilderを調べてください。

以下のJava1.5Runtime.getRuntime().exec(...)が使用されました。

于 2013-02-06T20:36:55.283 に答える
0

次のことができます。

        Process proc = Runtime.getRuntime().exec("net start");          
        InputStreamReader isr = new InputStreamReader(proc.getInputStream());
        BufferedReader br = new BufferedReader(isr);

        String temp = null;
        while (( temp = br.readLine() ) != null)
               System.out.println(temp);
于 2013-02-06T21:06:16.637 に答える