Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从java文件在终端上执行我自己的命令_Java_Terminal_Ros - Fatal编程技术网

如何从java文件在终端上执行我自己的命令

如何从java文件在终端上执行我自己的命令,java,terminal,ros,Java,Terminal,Ros,我试图用Java制作一个eclipse项目,用一些按钮启动命令。Ros fuerte的库(我想使用的这些库)已正确安装,具体而言,我正在尝试使用以下命令从Java文件启动Ros命令: String cmd = "roscore"; Runtime rt = Runtime.getRuntime(); Process p = rt.exec(cmd); 如果我从当前终端启动这个命令,它会工作,但是如果我从java文件启动,我会遇到问题,因为终端无法识别这个命令 java.io.IOExcep

我试图用Java制作一个eclipse项目,用一些按钮启动命令。Ros fuerte的库(我想使用的这些库)已正确安装,具体而言,我正在尝试使用以下命令从Java文件启动Ros命令:

String cmd = "roscore";

Runtime rt = Runtime.getRuntime();

Process p = rt.exec(cmd);
如果我从当前终端启动这个命令,它会工作,但是如果我从java文件启动,我会遇到问题,因为终端无法识别这个命令

java.io.IOException: Cannot run program "roscore": java.io.IOException: error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:475)
at java.lang.Runtime.exec(Runtime.java:610)
at java.lang.Runtime.exec(Runtime.java:448)
at java.lang.Runtime.exec(Runtime.java:345)
at LaunchTerminal.main(LaunchTerminal.java:24)
我想我需要添加一些路径或类似的路径,但我找不到信息。有人知道怎么做吗


谢谢你

只有普通命令才能像rm或cd一样执行。。。必须使用上下文的完整路径引用所有其他对象如果使用groovy发行版,请执行以下操作:

String cmd = "source /opt/ros/groovy/setup.bash && roscore";

以绝对路径启动程序。可能重复谢谢!现在它工作了,但是终端在执行命令时关闭。有可能让它开着吗?你为什么想让它开着?但是这里有一个很好的站点,我需要它,因为它是一个程序(主程序),Ros的所有其他“节点”都与之连接,所以我需要打开它。roscore是一个可以在终端的任何地方使用的命令吗?如果是。。。我不知道为什么那不起作用。。。其他的您必须使用此脚本的完全限定路径和名称