您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

通过Java运行cmd命令

通过Java运行cmd命令

从Java程序的不同目录运行到工作目录的一种方法是更改??目录,然后在同一命令行中运行该进程。你可以通过cmd.exe运行命令行 来完成此操作cd some_directory && some_program

下面的示例更改为另一个目录并dir从该目录运行。诚然,我可以在dir不需要该目录的情况下访问该目录cd,但这只是一个示例:

import java.io.*;

public class CmdTest {
    public static void main(String[] args) throws Exception {
        ProcessBuilder builder = new ProcessBuilder(
            "cmd.exe", "/c", "cd \"C:\\Program Files\\Microsoft sql Server\" && dir");
        builder.redirectErrorStream(true);
        Process p = builder.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
        while (true) {
            line = r.readLine();
            if (line == null) { break; }
            System.out.println(line);
        }
    }
}

还要注意,我正在使用a ProcessBuilder运行命令。除其他外,这使我可以通过调用将流程的标准错误重定向到其标准输出redirectErrorStream(true)。这样做只给我一个流可以读取。

这为我的机器提供了以下输出

C:\Users\Luke\StackOverflow>java CmdTest
 Volume in drive C is Windows7
 Volume Serial Number is D8F0-C934

 Directory of C:\Program Files\Microsoft sql Server

29/07/2011  11:03    <DIR>          .
29/07/2011  11:03    <DIR>          ..
21/01/2011  20:37    <DIR>          100
21/01/2011  20:35    <DIR>          80
21/01/2011  20:35    <DIR>          90
21/01/2011  20:39    <DIR>          MSsql10_50.sqlEXPRESS
               0 File(s)              0 bytes
               6 Dir(s)  209,496,424,448 bytes free
java 2022/1/1 18:17:39 有518人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶