내 Java 프로그램의 SET 명령 만있는 응용 프로그램 설치 위치에서 .bat 파일을 실행해야합니다..bat 환경 변수를 ProcessBuilder 프로세스로 설정하는 방법
ProcessBuilder pb = new ProcessBuilder("cmd", "/c","C:\\apps\\vars.bat");
pb.command("C:\\apps\\test.exe","-u=user1", "-p=pwd1");
pb.redirectErrorStream(true);
pb.redirectOutput(outputFile);
Process process = pb.start();
try {
process.waitFor();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
process.getOutputStream().close();
InputStream is = process.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(is));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
}
아래와 같이
나는 다음 문제는 자바 프로그램이 .BAT 파일에 설정된 환경 변수 중 하나를 인식하지 못합니다입니다@rem Defined by Install. Please Do NOT Remove The Following Lines.
set VAR1=110002020150715
set DB_CONNECT=test
set DB_SERVER=localhost
set ORACLE_SID=test
set XML_ENCODING=ISO-8859-1
vars.bat 내용입니다 실행하려고.
vars.bat 및 test.exe는 모두 응용 프로그램 설치 위치입니다. test.exe를 실행하려면 먼저 vars.bat를 실행해야합니다. exe가 .bat 파일에 설정된 변수를 사용하여 응용 프로그램에 연결하기 때문에
.Bat 파일에 설정된 환경 변수를 ProcessBuilder .
Java 프로그램이 .bat 파일에서 설정 한 envars를 인식하지 못한다는 것을 어떻게 알 수 있습니까? 이'System.out.println (System.getenv ("JAVA_HOME"));을 확인하고 같은 방식으로 .bat에 설정 한 env var를 인쇄 해보십시오. –
인쇄 null 값 – Mohan
@ 모한'C : \ apps \ vars.bat' 파일의 내용을 추가하려면 질문을 편집하십시오. 또한 환경 변수를 읽으려고하는 Java 프로그램의 전체 소스 코드를 추가하십시오. – Progman