我的团队目前正在使用Java进行项目,该项目涉及机器人仿真软件Gazebo。为了在特定的环境下启动Gazebo,我们编写了一个shell脚本,希望使用Java(或ProcessBuilder)中的Runtime.getRuntime().exec(...)
命令来执行。
这是我们的问题:
如果我们从终端启动该脚本,那么一切都将正常运行,即您可以看到一个带有我们模型(塔塔)的世界:
但是,如果我们尝试从Java应用程序中执行该脚本,它将仅显示此信息(模型可以识别但无法可视化):
我们假设即使在~/.bashrc
中定义了凉亭模型路径,凉亭也没有找到。
让任何人知道为什么它不起作用。我们知道你们中的大多数人可能不了解凉亭,但是也许你们中的一些人已经处理过类似的问题。 预先感谢!
答案 0 :(得分:0)
我找到了适合我们的解决方案:
我使用ProcessBuilder,而不是“ Runtime.getRuntime()。exec(...)”命令。
ProcessBuilder builder = new ProcessBuilder();
builder.command(your_command);
builder.directory(new File(your_path));
Map<String, String> env = builder.environment();
env.put("GAZEBO_MODEL_PATH", variable_content);
Process process = builder.start();
现在,我们可以在此处设置GAZEBO_MODEL_PATH,并且凉亭可以正确加载所有世界