2013-08-22 5 views
1

쉘에서 source 명령을 사용하여 호출하는 bash 스크립트 파일을 가지고 있으며 많은 환경 변수를 설정 중입니다. 그런 다음 환경 변수가 설정하는 모든 도구를 사용할 수 있습니다.Java에서 소스 명령 실행

지금 나는를 사용하여 자바에서 동일한 작업을 수행 할 :

static Runtime run = Runtime.getRuntime(); 
Process pr = run.exec(command); 
pr.waitFor(); 

그 소스가 내부 명령입니다 알고 나는 자바에서 호출 할 수 없습니다.

Java에서 해당 파일의 환경 변수를 설정하여 나중에 다른 명령을 호출 할 때 내 코드에서 사용할 수 있습니까?

미리 감사드립니다.

답변

2
Process pr = new ProcessBuilder("/bin/bash", "-c", ". env.sh; " + command).start(); 

스크립트를 소스로 사용하고 동일한 쉘 프로세스에서 후속 명령을 실행하는 이와 같은 방법을 시도해보십시오. 효과적으로 명령을 실행할 때마다 스크립트를 원본으로 사용합니다.

+0

미안하지만이 물건을 처음 접했습니다. 프로세스 pr을 생성 한 후 런타임을 사용하여 어떻게 실행합니까? – Kyriakos

+0

@Kyriakos 위의 예제에서는 끝에 .start()가 있기 때문에 실행 중입니다. 다음과 같이 processbuilder를 만들 수 있습니다. Processbuilder pb = 새 ProcessBuilder ("/ bin/bash", "-c", ". env.sh;"+ command); 다음과 같이 실행하십시오. 프로세스 p = pb.start(); – Miterion

+0

다음과 같이했습니다 : \t 문자열 sourcePath [] = { "/ bin/bash", "-c", xmosSetEnvCmd + ";" + xcoreCompileCmd}; 그럼 pr = run.exec (sourcePath); 그리고 나서 pr.waitFor(); 나는 똑같다고 생각한다! 대단히 Mistorion 주셔서 감사합니다! 그것의 작동 – Kyriakos