java - 如何在 Java 中运行 CMD

标签 java cmd

<分区>

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

这是我的代码,我从 here 得到的:

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);
            }
        }
    }

}

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

最佳答案

这里:

public static void main(String[] args) {
}

Main 类的ma​​in 方法是空的,什么也不做。

然后您添加了 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 成为它自己的公共(public)顶级类。

郑重声明:格式化很重要。我花了 2 分钟来解决您的问题。为什么?由于误导性格式。如果你合理地缩进,潜在的问题会在 5 秒内显而易见。因此:始终一致地缩进,并将 } 放在新的一行,即使 block /方法为空!

最后:考虑到 OP 通过更多语法实验给出的 self 回答,真正的答案在这里:退后一步。看this例如,了解正确的 class + main 应该是什么样子。 了解详细信息,然后开始插入您自己的代码。

关于java - 如何在 Java 中运行 CMD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57801731/

相关文章:

java - 是否可以在自定义组件中使用 Camel 组件?

java - android项目中Intellij-Idea的渲染问题

Java 方法签名和接口(interface)

java - 为什么按键绑定(bind)不适用于 CardLayout?

c# - 如何在 Windows 中通过 C# 执行 msg.exe?

iis - 使用 appcmd 向 IIS 添加站点和绑定(bind)(使用主机名、端口和 IP 地址)

windows - 将文件从 FTP 服务器复制到本地目录?

R CMD BATCH 选择非默认的 R 版本

windows - 在窗口中操作变量

java - 使用字符密码 Java 返回正确代码时出现问题