从 Java 调用时,Perl 进程找不到命令 svn
Perl Process can't find command svn when called from Java
我需要从 Java 自动执行一些 perl 脚本。我使用 Runtime.getRuntime().exec
来启动 perl 进程。我生成一个起始参数字符串并将其作为参数传递给 exec。字符串看起来有点像这样:
cmd /C start /wait perl "path\to\perl\script" -p1 scriptparameter1 -p2 scriptparameter2
我也试过了
perl "path\to\perl\script" -p1 scriptparameter1 -p2 scriptparameter2
.
如果我复制该字符串并通过 Windows+R 执行它,一切正常,但通过 exec Perl 脚本找不到 svn 命令。如果我从 java 而不是直接从 windows 执行 perl 进程,为什么会有所不同?
我想通了。原因是我刚刚安装了 svn 并且 PATH 环境变量对 cmd 生效但对其他进程无效(无论出于何种原因)。计算机重新启动后一切正常。
我需要从 Java 自动执行一些 perl 脚本。我使用 Runtime.getRuntime().exec
来启动 perl 进程。我生成一个起始参数字符串并将其作为参数传递给 exec。字符串看起来有点像这样:
cmd /C start /wait perl "path\to\perl\script" -p1 scriptparameter1 -p2 scriptparameter2
我也试过了
perl "path\to\perl\script" -p1 scriptparameter1 -p2 scriptparameter2
.
如果我复制该字符串并通过 Windows+R 执行它,一切正常,但通过 exec Perl 脚本找不到 svn 命令。如果我从 java 而不是直接从 windows 执行 perl 进程,为什么会有所不同?
我想通了。原因是我刚刚安装了 svn 并且 PATH 环境变量对 cmd 生效但对其他进程无效(无论出于何种原因)。计算机重新启动后一切正常。