我是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 必须是什么样子。了解细节,然后开始插入您自己的代码。
添加回答
举报
0/150
提交
取消