gpt4 book ai didi

java - 如何在java中使用另一个程序执行cmd命令

转载 作者:行者123 更新时间:2023-11-30 11:16:02 25 4
gpt4 key购买 nike

我想制作一个打开另一个java程序的程序。如何在编译和运行java程序时运行/执行cmd命令。

例如 c:\Users\Burnok> javac HelloWorld.java 和 c:\Users\Burnok> java HelloWorld

我怎样才能在 java 程序中做到这一点?请帮忙。

我试过这段代码,但它编译成功,但如果我尝试运行 HelloWorld.class,它说找不到或无法加载主类。

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;


public class Test {

private static void printLines(String name, InputStream ins) throws Exception {
String line = null;
BufferedReader in = new BufferedReader(
new InputStreamReader(ins));
while ((line = in.readLine()) != null) {
System.out.println(name + " " + line);
}
}

private static void runProcess(String command) throws Exception {
Process pro = Runtime.getRuntime().exec(command);
printLines(command + " stdout:", pro.getInputStream());
printLines(command + " stderr:", pro.getErrorStream());
pro.waitFor();
}

public static void main(String[] args) {
try {
runProcess("javac src/HelloWorld.java");
runProcess("java src/HelloWorld");
} catch (Exception e) {
e.printStackTrace();
}
}

}

这里是错误java src/HelloWorld stderr: 错误: 无法找到或加载主类 src.HelloWorld

最佳答案

你应该在从另一个目录运行时提到类路径

语法是java -classpath directory_to_program Program

try {
runProcess("javac src/HelloWorld.java");
runProcess("java -classpath src HelloWorld");
} catch (Exception e) {
e.printStackTrace();
}

阅读更多信息 How do I run a java program from a different directory?

关于java - 如何在java中使用另一个程序执行cmd命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25081761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com