2014-02-23 2 views
0

박쥐 파일을 시작하려고합니다. 박쥐 파일은 폴더에 있습니다. 이 폴더는 모든 실행 가능한 jar 파일을 포함합니다. 박쥐 파일을 실행할 수 있지만이 코드를 시도했습니다. .이
Runtime.getRuntime() 간부박쥐 파일이 시작되지 않고 박쥐 파일이 폴더에 있습니다.

ProcessBuilder pb = new ProcessBuilder("C:\\Users\\user\\Desktop\\NetBeansProjects\\Genomic DataWarehouse Project\\biodwh.startBioDWH.bat"); 
    pb.redirectErrorStream(true); 
     Process p = pb.start(); 
     InputStream is = p.getInputStream(); 
     BufferedReader br = new BufferedReader(new InputStreamReader(is)); 
     for (String line = br.readLine(); line != null; line = br.readLine()) 
     { 
       System.out.println(">" + line); 
     } 
     p.waitFor(); 
+0

"불가능"이라고 할 때 당신은 무엇을 의미합니까? 무슨 일이야? 무슨 일이 일어날 것으로 예상됩니까? 오류 메시지가 있습니까? – Behe

+0

내 경험에 따르면 .bat 파일을 열지 않으면 .bat 파일을 호출하는 스크립트와 아무 관련이 없을 수 있습니다. 여러 가지 유형의 오류로 인해 .bat 파일이 제대로 작동하지 않거나 제대로 작동하지 않는 것처럼 보이게 할 수있는 일시 중지가 누락 될 수 있습니다. 코드를 올바르게 평가하려면 .bat 파일 내부에 무엇이 있는지 알아야합니다. 이후 다른 답변을 당신을 위해 일하는 것, 오류가있는. 박쥐 파일을 내 첫 번째 본능 것입니다. – Brad

답변

0

시도 사용 ("cmd를/C를 시작 C : 사용자 \ \ 사용자 \ 바탕 화면 \ NetBeansProjects \ 게놈 데이터웨어 하우스 프로젝트 \ biodwh.startBioDWH.bat"); 당신의 박쥐에서

+0

이 줄을 추가했지만 박쥐 파일을 열지 못했습니다 – stella

+0

나를 위해 작동합니다 .. 박쥐 파일 이름에서 첫 번째 점을 제거하려고합니다. –

+0

미안하지만 박쥐 파일은 거기에있는 실행 파일에 의존하는 폴더에 있기 때문에 나를 위해 작동하지 않습니다. – stella

0

이는 박쥐 파일 중 하나 현재 드라이브와 경로를 변경합니다 라인 pushd %~dp0

를 추가합니다.

+0

아니요 이것이 박쥐 파일을 열지 않습니다. (ProcessBuilder pb = 새로운 ProcessBuilder ("C : \\ Users \\ 사용자 \\ Desktop \\ NetBeansProjects \\ Genomic DataWarehouse Project \\ biodwh.startBioDWH)와 같은 경로의 끝에 pushd % ~ dp0을 추가하라는 메시지가 표시됩니다. .batpushd % ~ dp0 ") – stella

+0

줄을 추가하기 위해 파일을 수정할 수 있음을 알려주지 않습니다. 모든 .bat 파일은 경로를 처리하기 위해'% ~ dp0'을 사용해야하며 배치 파일이 항상 작동 할 수 있습니다 그것은 그것의 경로에서 두 번 클릭하여 시작됩니다 ... – QuickFix

+0

미안하지만, 일단 배트 file.Because을 수정하는 방법을 몰라요 난 일단 doube startBioDWH.bat입니다 박쥐 파일을 클릭 doube. – stella

0

좋아요, 제가 오해 한 것 같습니다.

배치 파일을 직접 실행할 수는 없지만 cmd.exe를 사용하여 실행해야한다고 생각합니다.

ProcessBuilder pb = new ProcessBuilder("cmd /c C:\\Users\\user\\Desktop\\NetBeansProjects\\Genomic DataWarehouse Project\\biodwh.startBioDWH.bat"); 

을 또는 OU는 박쥐 파일이 방법으로 실행하려고 할 수 있습니다 : 당신의 새로운 ProcessBuilder를 라인 (끝 부분에 공간) cmd /c를 추가하려고

String path="C:\\Users\\user\\Desktop\\NetBeansProjects\\Genomic DataWarehouse Project\\"; 
File dir = new File(path); 
Process process = Runtime.getRuntime().exec("cmd /c "+path+"biodwh.startBioDWH.bat", null, dir); 

또는 다음과 같은 경우는 짧은 만들 수 있습니다 배치 파일이 상주하는 폴더에서 실행될 필요가 없습니다.

Process process = Runtime.getRuntime().exec("cmd /c C:\\Users\\user\\Desktop\\NetBeansProjects\\Genomic DataWarehouse Project\\biodwh.startBioDWH.bat"); 
관련 문제