java在dos中设置环境变量和重定向

一、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







猜你喜欢

转载自blog.csdn.net/yezonggang/article/details/51824287