2012-09-18 31 views
1

我想在Java中创建一个eclipse项目来启动一些按钮的命令。罗斯富尔特的(这些那些我想使用)的库是否正确安装,较具体来说我试图使用从Java文件推出了ROS命令:如何在java终端上执行我自己的命令文件

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) 

我认为我需要添加一些路径或类似的,但我不找到所需的信息。有人知道该怎么做吗?

谢谢你。

+2

推出程序与绝对路径。 – Jayan

+0

[在Java中通过终端执行外部程序]可能的重复(http://stackoverflow.com/questions/8751337/execute-external-program-through-terminal-in-java) – codeling

回答

0

只有正常命令可以执行像RM或CD ......人等必须具有上下文的完整路径

+0

什么意思是你的术语*正常命令* ? –

+0

谢谢!现在它可以工作,但终端在执行命令时关闭。是否可以保持开放? – user1679709

+0

为什么你想保持它打开? 但在这里一个不错的网站http://www.java-tips.org/java-se-tips/java.util/from-runtime.exec-to-processbuilder.html – mbraunerDE

0

,如果您使用的是常规分布执行以下引用:

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