【发布时间】:2020-05-19 22:51:12
【问题描述】:
我的团队目前正在开发一个涉及机器人仿真软件 Gazebo 的 Java 项目。为了启动具有特定世界的 Gazebo,我们编写了一个 shell 脚本,我们希望使用 Java(或 ProcessBuilder)中的Runtime.getRuntime().exec(...) 命令执行该脚本。
这是我们的问题:
如果我们从终端启动该脚本,一切都会完美运行,即您可以使用我们的一个模型(塔架)看到一个世界:
但是,如果我们尝试从 Java 应用程序中执行该脚本,它只会显示这一点(模型被识别但不可视化):
我们假设 Gazebo 没有找到 Gazebo 模型路径,尽管它们在 ~/.bashrc 中定义。
有人知道为什么它不起作用。我们知道你们中的大多数人可能不知道 Gazebo,但也许你们中的一些人处理过类似的问题。 提前致谢!
【问题讨论】:
-
您可以通过指定所需的特定变量来确保您的脚本始终在正确的环境下运行,或者在脚本开头通过
. ~user/.bashrc加载环境。 -
感谢您的评论!我切换到 ProcessBuilder 并找到了一种定义环境变量的方法。现在可以使用了