使用Java命令行调用并获取结果的过程可以分为以下几个步骤:
- 创建一个新的Java类,作为命令行调用的入口。
- 在该类的main方法中,使用ProcessBuilder类创建一个新的进程,并指定要执行的命令和参数。
- 启动进程并等待其执行完成。
- 获取进程的输出结果。
下面是每一步需要做的具体操作以及对应的代码:
1. 创建一个新的Java类
首先,创建一个新的Java类,例如CommandLineCaller
。
2. 使用ProcessBuilder创建新的进程
在CommandLineCaller
类的main
方法中,使用ProcessBuilder
类创建一个新的进程。ProcessBuilder
提供了一种方便的方式来创建和控制子进程。
ProcessBuilder processBuilder = new ProcessBuilder("java", "-jar", "your-jar-file.jar");
上述代码中,我们通过ProcessBuilder
创建了一个运行java -jar your-jar-file.jar
命令的进程。你需要将your-jar-file.jar
替换为你实际要执行的Java可执行文件的路径。
3. 启动进程并等待执行完成
启动进程并等待其执行完成,可以通过调用start
和waitFor
方法来实现。
Process process = processBuilder.start();
int exitCode = process.waitFor();
上述代码中,start
方法启动了进程,waitFor
方法会阻塞当前线程,直到进程执行完成并返回退出码。你可以根据exitCode
来判断进程的执行结果。
4. 获取进程的输出结果
要获取进程的输出结果,可以通过获取进程的输入流,并读取其内容。
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
StringBuilder output = new StringBuilder();
while ((line = reader.readLine()) != null) {
output.append(line).append(System.lineSeparator());
}
String result = output.toString();
上述代码中,我们通过process.getInputStream()
获取进程的输入流,然后使用BufferedReader
逐行读取输入流的内容,并将每一行的内容添加到output
中。最后,将output
转换为字符串即可获得进程的输出结果。
下面是完整的代码示例:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
public class CommandLineCaller {
public static void main(String[] args) {
try {
ProcessBuilder processBuilder = new ProcessBuilder("java", "-jar", "your-jar-file.jar");
Process process = processBuilder.start();
int exitCode = process.waitFor();
if (exitCode == 0) {
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
StringBuilder output = new StringBuilder();
while ((line = reader.readLine()) != null) {
output.append(line).append(System.lineSeparator());
}
String result = output.toString();
System.out.println("输出结果:" + result);
} else {
System.out.println("命令执行失败!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上就是使用Java命令行调用并获取结果的完整流程和代码。通过以上步骤,你可以在Java程序中调用命令行,并获取其执行结果。记得替换代码中的your-jar-file.jar
为实际的Java可执行文件路径。祝你成功!