gpt4 book ai didi

java - 通过 Java App 调用终端并运行命令

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:58 25 4
gpt4 key购买 nike

我正在使用以下代码从我的 Java 应用程序运行命令:

String cmd[] = {"sh","-c", "sudo chmod 777 -R " + path};
Terminal.runCommand(cmd);

我想通过单击并选择“打开方式...”->“Java”来执行 .jar;

问题是由于“sudo”命令,应用程序一直在等待输入密码,但没有调用终端,用户无法输入密码..

那么,我怎样才能调用上面的命令和终端来让用户有机会输入密码并且应用程序最终继续运行呢?

非常感谢!

最佳答案

这是一个 sudo 问题,不是 Java 问题; sudo 以 root 身份执行操作。您的进程没有 root 权限,因此 sudo 需要对人进行身份验证。这是一个特性,而不是一个错误。系统不允许您运行 root 命令。

一个选项可能是使用 gksu 代替,它在某些发行版中默认提供。它的工作原理类似,但会在 GUI 中而不是在(在本例中不存在的)终端上弹出密码对话框。

另一种可能是简单地以 root 身份运行您的 Java 进程,这可能会带来所有安全隐患。在某些情况下,这可能是一个有效的选择,但要小心。

或者您可以查看 sudo 和 sudoers 的手册页——可以将帐户配置为不需要密码,并在需要时将它们限制为特定命令。

关于java - 通过 Java App 调用终端并运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14264516/

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