为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Java中运行CMD

如何在Java中运行CMD

一只甜甜圈 2023-07-13 17:59:01
我是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);            }        }    }}我只得到一个空的控制台,我不知道为什么。
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

这里:


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 必须是什么样子。了解细节,然后开始插入您自己的代码。


查看完整回答
反对 回复 2023-07-13
  • 1 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信