如何在Java中运行CMD

我是Java新手,我需要在java中运行CMD或Powershell,因为我想了解当前的RAM利用率和当前的磁盘分布在StackOverflow上有很多类似的问题,但我不明白。

这是我的代码:

package test;


import java.io.BufferedReader;

import java.io.InputStreamReader;


public class Main {


    public static void main(String[] args) {

    }


    public static 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);

            }

        }

    }


}

我只得到一个空的控制台,我不知道为什么。


一只甜甜圈
浏览 89回答 1
1回答

倚天杖

这里:public static void main(String[] args) {}Main类的 main 方法是空的,什么也不做。然后,您添加了Main 的另一个内部类,名为CmdTest。但该类及其 main 类从未被调用过。我的建议是,删除 CmdTest 类,并将其代码放入现有的 Main.main() 中:public class Main {  public static void main(String[] args) throws Exception {    ProcessBuilder builder = new ProcessBuilder(...您还可以将 Main.java 重命名为 CmdTest.java,并(基本上)删除旧的 Main,并让您的 CmdTest 成为其自己的公共顶级类。郑重声明:格式非常重要。我花了2分钟才弄清楚你的问题。为什么?由于格式误导。如果你合理地缩进,潜在的问题将在 5 秒内显现出来。因此:始终一致地缩进,并将 } 放在新行上,即使块/方法为空!最后:给出OP通过更多语法实验的自我回答,真正的答案在这里:退后一步。例如,看看这个,了解正确的类 + main 必须是什么样子。了解细节,然后开始插入您自己的代码。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java