java - 如何让 java 在 Mac 上运行终端命令?(回声命令)
问题描述
你如何在 Mac 上运行 java 运行命令?我看到了一些难以理解的复杂命令示例。如果我想从 java 运行一个简单的 echo 命令,我该怎么做?还没有使用 osascript。只是想看看如何将回显从 java 发送到终端。
public static void main(String[] args) throws IOException {
ProcessBuilder x = new ProcessBuilder("echo"," hi");
x.start();
}
这是我尝试过的代码,但它不起作用。我认为这个问题可以帮助那些试图学习 ProcessBuilder 基础知识的人。
解决方案
我在 Windows 上,所以下面的代码使用 Windows echo
。我希望您知道 Mac echo 命令,以便您可以用您的命令替换我的命令。
import java.io.IOException;
import java.lang.ProcessBuilder;
public class PrcBldT2 {
public static void main(String[] args) {
// This command is for Windows operating system.
// For MacOS, try: new ProcessBuilder("echo", "hi")
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/c", "echo", "hi");
pb.redirectError(ProcessBuilder.Redirect.INHERIT);
pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
try {
Process p = pb.start();
int result = p.waitFor();
System.out.println("Exit status = " + result);
}
catch (IOException | InterruptedException x) {
x.printStackTrace();
}
}
}
请注意,命令中的每个单词都是一个单独的字符串。命令输出将echo
被重定向到System.out
.
推荐阅读
- amazon-web-services - 从 Heroku 连接到 AWS RDS Aurora 实例超时
- afnetworking - AFNetworking 4 - 上传进度问题
- json - 如何使用空手道将 JSON 对象从一个特征文件传递到另一个特征文件
- r - 将对象保存到列表
- mapbox - Mapbox GL-JS 确定一个点是否在路线上
- python - 如何从角度向量向量化 N 旋转矩阵的创建?
- c# - 如何使用创建数据的外部 C# 类(例如来自 JS/TS 中的 Cypress)?
- limit - 将 null/invalid/space 等效存储为
INT_MIN 或 LONG_MIN - powershell - Shell NameSpace 更改每个映射网络驱动器的标签
- gradle - gradle插件中的强制依赖版本