gpt4 book ai didi

java - 从 java 执行命令时使用 bash 函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:21 25 4
gpt4 key购买 nike

我在我的 .bashrc 中编写了一个 bash 函数,它负责更新我的 java jar 文件并使用新的 jar 重新启动应用程序,作为一种自动更新机制。

我正在尝试使用以下 java 片段从我的 java 代码中执行我的函数:

Runtime.getRuntime().exec(new String[] { "/bin/bash", "-c", "update-logbot" });

这将返回 127 的退出代码,表明它找不到该函数。

我如何从 java 应用程序中执行这个 bash 函数?

最佳答案

如果我的理解是正确的,你已经有一个 bash 脚本来关闭 java/jar 程序并删除它并下载新的新 jar/java 程序并执行它。

但是您希望使用 Java 程序实现相同的目的。

要实现这一点,您需要一个 bash 脚本来将新程序下载到与旧 java 程序相同的文件夹中,并将 jar 名称更改为该程序的下一个迭代版本。

在程序中调用下面的脚本

proc = Runtime.getRuntime().exec("sh/home/***/Documents/script.sh");

在确认 jar/java 程序复制操作成功后,调用另一个脚本来启动新的 java/app(提供新程序的延迟启动,以便新程序在旧程序退出之前不会启动)

在新的java程序中检查是否存在旧版本的程序并执行脚本删除或通过java程序删除它

您可能还需要模拟用户权限(通过调用的脚本模拟用户)来实现此功能

关于java - 从 java 执行命令时使用 bash 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34340087/

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