2012-03-29 1 views
0

나는 exec를 사용하여 놀았으며 사용자가 나와 함께 터미널을 열었지만 명령을 실행할 수없는 것 같습니다./코드는 다음과 같다 : 내가 얻을 xterm이나 콘솔에서Java에서 exec를 통해 터미널에서 명령어 실행하기 루트가 아닌 것

try{ 
    Runtime rt = Runtime.getRuntime(); 
    Process proc = rt.exec("xterm -e \"source /home/USER/.bashrc; ~/./myscript.sh\"") 
} 
catch(Throwable t) 
    t.printStackTrace(); 

을 :

사용 대기 터미널이 다음이고, I는 Ctrl-D를 때까지 사라지지 않습니다
xterm: Can't execvp ": No such file or directory 
[email protected]:$ 

.

여기에 무슨 일이 일어나고 있는지 확실하지? ...

감사합니다.

+0

호출에서 사용자 지정 스크립트를 꺼내고 .bashrc 파일 만 가져 오는 경우 어떻게됩니까? 그게 효과가 있다면 스크립트에서 문제의 원인이 될 수 있습니다. – robertvoliva

+1

이것은 경로 문제 일 수 있습니다. xterm에 대한 전체 경로를 지정하십시오. –

+0

안녕하세요, xterm에 대한 전체 경로를 지정해도 도움이되지 않았습니다. 'usr/bin/xterm : Can not ... 등'과 동일한 메시지가 있습니다. 'xterm : Can not .... 기타' – Jarob22

답변

0

xterm의 -e 옵션에 쉘 물건을 전달할 수 없다고 생각합니다. 그것은 프로그램과 그 프로그램을위한 선택적 매개 변수를 원합니다. source은 내장 쉘입니다.

시도해 볼 수있는 일은 단지 myscript.sh으로 전화를 걸고 상단에 bashrc를 제공하도록 수정하는 것입니다. 또는 rc 파일을 소스로하는 새로운 bash 스크립트를 작성한 후 myscript.sh을 실행하십시오.