2011-12-25 2 views
2

단순히 myFolder.txt라는 폴더를 삭제하는 C 프로그램을 작성했습니다.
java 응용 프로그램에서 .exe 파일을 실행하려고합니다. 나는 오류가 나타납니다 내 자바 응용 프로그램을 실행할 때java 응용 프로그램에서 .exe 파일 실행

try 
{ 
    Runtime rt = Runtime.getRuntime() ; 
    Process p = rt.exec("program2.exe") ; 
    p.destroy() ; 
}catch(Exception exc){/*handle exception*/ 
System.out.println("ERROR"); 
    } 

하지만 파일이 삭제되지 않습니다
그래서, 나는 다음과 같은 코드를 사용했다.

왜?

+0

C 프로그램이 제대로 작동하지 않습니다. 그것은 Myfolder.txt라는 이름의 txt 파일이 있는지 테스트합니다. 그렇다면 제거합니다. 명령 줄에서 .exe를 실행하려고했는데 모든 것이 OK입니다. – user1077980

+0

1) J2SE 파일을 사용하여 파일을 삭제하지 않는 이유는 무엇입니까? API? 2)'exec'를 사용한다면, [Runtime.exec()이 안되면] (http://www.javaworld.com/javaworld/jw-12-2000/jw-ko/)의 모든 권장 사항을 읽고 구현하십시오. 1229-traps.html). 3)'exc.printStackTrace()'는 타입이 짧고 런타임에보다 유익합니다. –

답변

6

프로세스를 생성 한 후 즉시 destroy을 편집했습니다. 물론 실행 파일은 실행되지 않습니다. 대신 .waitFor()에 전화를 걸어보십시오 (또는 그냥 실행 시키십시오).

+0

예 .. 그게 문제였습니다 파일이 지금 삭제되었습니다 감사합니다 – user1077980

2

program2.exe은 Java 프로젝트의 클래스 경로에 없을 수도 있습니다.

try { 
    Runtime rt = Runtime.getRuntime() ; 
    Process p = rt.exec("program2.exe") ; // @1 
    //p.destroy() ; // @2 
} catch (Exception exc) { 
    /*handle exception*/ 
    System.out.println("ERROR"); 
} 

@ 1 - exe 파일의 경로를 확인하십시오.

@ 2 - 수동으로 프로세스를 파괴 할 필요가 없으며 프로세스 완료 후 자동으로 종료됩니다.

프로세스가 시작되었는지 여부를 확인할 수 있습니다. Java 프로젝트 실행 - 즉시 작업 관리자로 이동 - 프로세스 - 실행중인 프로세스가 program2.exe 인 경우 프로세스가 시작됩니다. 그렇지 않으면 프로세스가 시작되지 않습니다. 시작되지 않은 경우 예외는 없습니다. exe 파일 경로가 문제가되면 exe 파일의 전체 경로를 제공하십시오.

관련 문제