一、dos中命令行设置和查看path环境变量
1.查看path变量值
C:\Users\ISSUSER.ISS201507151654>echo %path%
E:\oracle\product\10.2.0\db_1\bin;C:\Windows\system32;C:\Windows;C:\Windows\Syst
em32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseS
VN\bin;D:\ProgramFiles\dev\jdk_7.0\bin;D:\tools\apache-maven-3.0.5\bin;;D:\Progr
amFiles\dev\instantclient_11_2;D:\tools\apache-ant-1.9.6\bin;D:\tools\hadoop-2.6
.0\bin;
1.查看JAVA_HOME环境变量(前提是要有设置)echo方式
C:\Users\ISSUSER.ISS201507151654>echo %JAVA_HOME%
D:\ProgramFiles\dev\jdk_7.0
2..查看JAVA_HOME环境变量(前提是要有设置)set 方式
C:\Users\ISSUSER.ISS201507151654>set JAVA_HOME
JAVA_HOME=D:\ProgramFiles\dev\jdk_7.0
3.查看一个不存在的变量值abcd
C:\Users\ISSUSER.ISS201507151654>echo %abcd%
%abcd%
4.设置环境变量abcd (当前窗口有效)
C:\Users\ISSUSER.ISS201507151654>set abcd="aaaaaaa"
5.查看abcd变量值
C:\Users\ISSUSER.ISS201507151654>set abcd
abcd="aaaaaaa"
C:\Users\ISSUSER.ISS201507151654>echo %abcd%
"aaaaaaa"
二、重定向
我的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