shell内建命令和外部命令
今天在使用Java
的Runtime.exe()
执行一个Linux
命令的时候,出现了错误,通过问题的解决学习到了shell的内建命令和外部命令的差别。
问题:
使用如下Java
代码执行一个命令的时候,报错提示说:不能运行source
命令,原因是不存在该文件或目录。
String cmd = "source activate tensorflow";
Process pr = Runtime.getRuntime().exec(cmd);
BufferedReader in = new BufferedReader(new InputStreamReader(pr.getErrorStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
pr.waitFor();
我将前面代码中的cmd修改为cmd = "ls -l"
,发现能正常运行。
百思不得其解,本来对linux不是很熟悉,通过搜索引擎找到了答案,