Ste*_*ury 15 java scala runtime
我正在用scala写一个程序,它调用:
Runtime.getRuntime().exec( "svn ..." )
Run Code Online (Sandbox Code Playgroud)
我想检查命令行中是否有"svn"可用(即可以在PATH中访问).我怎样才能做到这一点 ?
PS:我的程序设计用于在Windows上运行
Dmi*_*urg 21
也许有人会对Java 8解决方案感兴趣:
String exec = <executable name>;
boolean existsInPath = Stream.of(System.getenv("PATH").split(Pattern.quote(File.pathSeparator)))
.map(Paths::get)
.anyMatch(path -> Files.exists(path.resolve(exec)));
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您可以替换anyMatch(...)为filter(...).findFirst()- 所以您将获得确切的可执行路径.
Fil*_*eca 13
我不是scala程序员,但我会用任何语言做的是执行类似' svn help'只是为了检查exec方法的返回码(0或1)......如果失败则svn不在路径:P
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("svn help");
int exitVal = proc.exitValue();
Run Code Online (Sandbox Code Playgroud)
按照惯例,值0表示正常终止.