一尘不染

如何使用Java执行Windows命令-更改网络设置

java

在Java中,我希望能够执行Windows命令。

有问题的命令是netsh。这将使我能够设置/重置我的IP地址。

请注意,我不想执行批处理文件。

我想直接执行这些命令,而不是使用批处理文件。这可能吗?


这是我实施的解决方案,以供将来参考:

public class JavaRunCommand {
    private static final String CMD = 
        "netsh int ip set address name = \"Local Area Connection\" source = static addr = 192.168.222.3 mask = 255.255.255.0";
    public static void main(String args[]) {

        try {
            // Run "netsh" Windows command
            Process process = Runtime.getRuntime().exec(CMD);

            // Get input streams
            BufferedReader stdInput = new BufferedReader(new InputStreamReader(process.getInputStream()));
            BufferedReader stdError = new BufferedReader(new InputStreamReader(process.getErrorStream()));

            // Read command standard output
            String s;
            System.out.println("Standard output: ");
            while ((s = stdInput.readLine()) != null) {
                System.out.println(s);
            }

            // Read command errors
            System.out.println("Standard error: ");
            while ((s = stdError.readLine()) != null) {
                System.out.println(s);
            }
        } catch (Exception e) {
            e.printStackTrace(System.err);
        }
    }
}

阅读 228

收藏
2020-09-08

共1个答案

一尘不染

Runtime.getRuntime().exec("netsh");

请参阅运行时
Javadoc。

编辑:稍后由leet给出的答案表明,现在不建议使用此过程。但是,根据DJViking的评论,情况似乎并非如此:Java
8文档
。该方法未弃用。

2020-09-08