下面Java中不能正常工作(抛出一个异常):Java的java.lang.Runtime.exec()和PHP的exec()之间有什么区别?
exec("cd mydir; myprog");
究竟什么是不同的Java的实现,为什么(看来:
Runtime.getRuntime().exec("cd mydir; myprog");
同样的作品在PHP罚款乍一看更有限)?
下面Java中不能正常工作(抛出一个异常):Java的java.lang.Runtime.exec()和PHP的exec()之间有什么区别?
exec("cd mydir; myprog");
究竟什么是不同的Java的实现,为什么(看来:
Runtime.getRuntime().exec("cd mydir; myprog");
同样的作品在PHP罚款乍一看更有限)?
java的exec命令不不使用系统命令解释器。类似于“cd mydir; myprog”的内容取决于系统命令行解释器(例如,在windows cmd
上,在linux sh
上)将其拆分为2个单独的命令并执行它们中的每一个。 java不会调用系统命令解释器,因此不起作用。您需要分别调用每个命令,或者自己调用所需的解释器作为命令行的一部分。
假设您正在运行applet,而不是服务器上CLI环境中的Java?如果是这样,那么您的Java运行时正在客户端计算机上运行,而不是服务器上运行。
Java还有更好的方式来处理多个命令而不是你的分号。除了使用签名:
Runtime.exec(String)
尝试使用此为您的每个命令:
Runtime.exec(String[])
,使你的命令的每个参数的字符串数组中的元素。
我见过有人有这样的问题,我敢肯定有几种方法,但是我见过的大多数人回复是这样的。在它之前添加cmd。
Runtime.getRuntime().exec("cmd cd mydir; myprog");
你是否从同一个工作目录运行这两个程序?例外说什么? – BoltClock