java - Java 中的 Linux 终端命令不起作用

标签 java linux bash

我正在尝试在我的 java 代码中执行 linux 命令。它需要更改某些目录的权限。

这是我的尝试:

String  Cmd = "echo myPassword | sudo -S chmod 777 -R /home/somePath";
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(Cmd);   

String Cmd 中的命令在终端中使用时运行良好。但是当我在我的代码中使用它时,什么也没有发生。没有错误或警告反馈可以帮助我理解我的错误。可能是什么问题?

最佳答案

Java 不会神奇地选择 bash 作为您的可执行文件。你可能想做类似的事情

"bash -c <your command>"

看到这个问题:

(| 也是一个 bash 东西。Java 不会神奇地在进程之间创建管道。)

关于java - Java 中的 Linux 终端命令不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27130282/

相关文章:

linux - 文件 shell 脚本的编码

linux - 检查目录是否存在且可访问

java - Postgresql 的 Liquibase addAutoIncrement 错误

php - 在后台运行繁重的 PHP 脚本

java - 我应该如何在 Spring boot 中配置 httpMessageConverters 以将消息转换为所需的格式?

java - 如何在不使用命令的情况下以编程方式关闭/重启 linux 机器(运行时)

bash - 将 awk 输出字段合并到相应的整数

bash - 根据内容将输入拆分为多个输出?

java - 密码验证 8 位数字,包含大写、小写和一个特殊字符

java - EasyMock 2.5 不适用于多个参数捕获