java在dos中调用R并重定向

一、我的dos命令行为:

Rscript test3.R >> c:\t.txt 2 >$1

意思是:将test3.R脚本运行的输出流和错误流,全部重定向到t.txt文件中。。。

这个' >> '表示追加(也可以用' > ',表示覆盖)

最后一个 2>$1 意思是:将输出(stdout)和输出错误(stderr)一起放在t.txt中。


二、看一个实例:

import java.io.File;

public class Testr{

public static void main(String args[]){

try{

Process process =Runtime.getRuntime().exec("Rscript ./R/test3.R > ./log/test.txt 2>&1",null,newFile("C:\\MLS_HOME"));

process.waitFor();

}catch(Exception e){

e.printStackTrace();System.out.println("wrong");

}

System.out.println("its ok!");

}

}


在java中调用了dos中的R脚本运行,而且将输出信息重定向到test.txt中,这个new File()可以用来提供运行R脚本和输出日志log的相对路径。如果最后一个参数new File()为null,则你必须保证R脚本和日志的地址是一个绝对路径!(或者dos的执行路径被切换为你需要的路径中,这时写相对路径就没错了。)

本例的决定路径为:

C:\MLS_HOME:\R\test3.R

C:\MLS_HOME:\log\test.txt







你可能感兴趣的:(java在dos中调用R并重定向)