我是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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我只有一个空控制台,不知道为什么。
这里:
public static void main(String[] args) {
}
Run Code Online (Sandbox Code Playgroud)
您的Main类的main方法为空,什么也不做。
然后,您添加了另一个Main 内部类,名为CmdTest。但是该类及其主要类从未被调用过。
我的建议是,只需删除CmdTest类,然后将其代码放入现有的Main.main()中:
public class Main {
public static void main(String[] args) throws Exception {
ProcessBuilder builder = new ProcessBuilder(...
Run Code Online (Sandbox Code Playgroud)
您还可以将Main.java重命名为CmdTest.java,并(基本上)删除旧的Main,并将您的CmdTest用作其自己的公共顶级类。
仅作记录:格式化很重要。我花了2分钟才弄清楚您的问题。为什么?由于格式误导。如果您进行了适当的缩进,那么根本的问题将在5秒钟内显而易见。因此:即使块/方法为空,也要始终一致地缩进,并将}放在新行上!
最后:考虑到OP的自我回答以及更多的语法实验,这里的真正答案是:退后一步。例如看这个,以了解正确的类+ main必须是什么样子。了解细节,然后开始插入自己的代码。
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |