Execute命令在Java中不起作用
Execute命令在终端中运行良好,但在Java代码中运行不好Execute命令在Java中不起作用,java,process,exec,Java,Process,Exec,Execute命令在终端中运行良好,但在Java代码中运行不好 String cmd = "find -name javax.jar"; Process process = Runtime.getRuntime().exec(cmd); BufferedReader reader = new BufferedReader(new InputStreamReader( process.getInputStream())); String l
String cmd = "find -name javax.jar";
Process process = Runtime.getRuntime().exec(cmd);
BufferedReader reader = new BufferedReader(new InputStreamReader(
process.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null)
{
System.out.println("" + line);
}
System.out.println("Line : "+line);
当您使用
Runtime.getRuntime().exec(cmd);
该进程从与Java进程相同的工作目录启动。如果Java是从不同的工作目录运行的,而不是在控制台中运行find-name javax.jar,那么您将看到不同的结果。我认为您可以尝试添加find的路径。
比如find/var/tmp-name你说的不工作是什么意思?为什么你认为它不工作?我在终端执行命令。它给出了位置。但是从Java中,它提供了nullRead并实现了的所有建议。这可能会解决问题。如果没有,它应该提供更多关于失败原因的信息。然后忽略它引用exec,并使用ProcessBuilder构建流程。还可以将字符串arg拆分为字符串[]args,以说明本身包含空格的参数。jar和Java都在同一目录中。@newuser在控制台中运行命令时,当前的工作目录是什么?启动java时,当前的工作目录是什么?两者都在根目录中directoryname@IM-WS-U-35:~$find-name javax.jar./MyFIles/MyTest/javax.jarname@IM-WS-U-35:~$它给出了我在终端中尝试时的确切位置。/MyFIles/MyTest/javax.jar