2017-02-17 3 views
1

내가 원하는 것은 : 먼저 어떤 디렉토리에 들어가서 같은 디렉토리에있는 내 서버를 시작하여 cd directory path을 사용해야하지만 이전 스레드를 읽었을 때 나는 그것을 가지고있다. 이후로는 cd 명령을 사용할 수 없다. 기본적으로 ls과 같은 명령이 아닌 시스템 호출입니다.특정 디렉토리 (cd)에 들어가서 java를 통해 bash 명령 (python 서버)을 수행하는 방법은 무엇입니까?

나의 유일한 목표는 Directorychooser으로 선택한 내 원하는 디렉토리에서 어떻게 든 이동하고 python -m SimpleHTTPServer을 시작하는 것입니다. 나는 sh -c를 사용하는 것과 같은 모든 가능한 해답을 시도했고, java의 cd 명령을 사용하는 것과 같은 질문에 제공된 다른 모든 솔루션을 시도했다. 이것은 cd를 사용하지 않고도 가능합니다. 나는 또한 directorychooser에 의해 선택된 주소를 문자열 주소로 가지고있다. 또한 해당 디렉토리에서 다른 명령을 어떻게 수행합니까? 내가 시도한 CD를하지 않기 때문에 Run.exec 또는 runtime.exec가 여전히 여기서 도움이 될지 확실하지 않습니다!

이전 질문에 대한 답변은 processbuilder와 다른 것을 사용하는 방법을 잘 설명하지 못합니다.

뿐만 아니라 이러한 시도 -

Runtime.getRuntime().exec(sh -c 'cd /path/to/dir && ProgToExecute 

답변

1

예 그것은 가능하다, 나는 또한 같은 문제에 붙어 있었고, 난 아무데도 cd 할 수 없었다 나는 우선은 달성 할 수 그것을 해결하는 방법이 솔루션은 무엇인지 당신은 ProcessBuilder으로하고 싶습니다.

  • 경로
  • 에게 부여하는 과정
  • 빌드 : 여기 당신이 그것을 달성 할 수있는 방법이다 (유래에 대한 이전 응답에 의해 제안 Runtime.exec의은()뿐만 아니라,이 날 도움이되지 않았다) 코드에서 과정

을 시작합니다 : 귀하의 경우에는

ProcessBuilder pbuild = new ProcessBuilder(“command”); //split into number of tokens like following example 

이 추천된다 :

ProcessBuilder pbuild = new ProcessBuilder("python" , "-m", "SimpleHTTPServer"); 

이제 프로세스가 간접적 여기 cd directory-path을 수행

pbuild.directory(new File(address)); 

즉 실행될 경로 설정

을 (당신은 당신이 당신의 경로 주소에 저장이 말했다, 정말, 가정입니다)

지금

Process proc = pbuild.start(); 

가 완료 과정을 시작하세요! 컴파일하고 실행하십시오. 명령은 cd과 함께 실행됩니다.

+1

정말 고마워요. 빠른 응답 ... 이걸 사용해보십시오. –

+0

@nikhilgawande 작동 했습니까? – minigeek

+0

그래, 고마워 :) :) –