java - 从 Java 运行 linux 脚本

标签 java linux bash exec

我有以下java代码

ArrayList<String> argList = new ArrayList<>();
argList.add("Hello");
argList.add("World");
String[] args = argList.toArray(new String[argList.size()]);

Process p =Runtime.getRuntime().exec("echo '$1 $2' ", args);

结果是 $1 $2 但我想打印 Hello World。 谁能帮帮我?

最佳答案

创建一个shell来使用参数扩展:

ArrayList<String> command = new ArrayList<>();
command.add("bash");
command.add("-c");
command.add("echo \"$0\" \"$1\"");
command.addAll(argList);

Process p = Runtime.getRuntime().exec(command.toArray(new String[1]));

输出:

Hello World

关于java - 从 Java 运行 linux 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18545921/

相关文章:

java - android中Tab长点击问题

linux - 字、双字、四字

mysql - 优秀的开源 MariaDB 前端

linux - 从文本文件数据库中替换当前字符串

bash - 使用 ffmpeg 将图像转换为电影 - 使用 Bash 将通配符传递给 ffmpeg glob -i 输入

java - API 的问题输出为空。仅来自 intellij

java - 如何在 Android 中从 NDK 访问可绘制文件

java - 无法在我的 JPanel 中绘制图像

linux - 如何识别哪个具有 root 访问权限的人从池中终止了作业/进程

linux - Bash 脚本作为屏幕保护程序