2011-07-05 5 views
1

일부 파일을 차단하기 위해 dd 명령을 사용해야하며 쉘을 통해 호출하지 않고 수행해야합니다.일반적인 유닉스 명령의 자바 라이브러리 (특히 dd)?

이미 작성된 클래스 라이브러리가 있습니까? 아니면 내 차단기 차단 해제 도구를 롤백해야합니까? 예정에

기본적으로 해당 :

dd if=foo.log of=fooblocked.log cbs=79 conv=block 
+0

그건 그렇고. 나는 Runtime.getRuntime(). exec()가 shell을 사용하지 않는다고 생각한다. – okadahiroshi

+0

Kk가 언급되었습니다. 그러나 오히려 순수 Java를 사용합니다. –

+0

순수한 Java를 사용할 수 없습니다. 가상 머신이 알 수없는 OS 관련 기능입니다. 어떤 시점에서 기본 OS와 상호 작용해야합니다. 선택 사항은 쉘 명령을 사용하거나 JNI (yuck!)를 통해 유닉스 C 라이브러리를 호출하는 것입니다. –

답변

1

Runtime.getRuntime().exec() 쉘에 전달 된 명령 (Windows의 명령 프롬프트) 작업 디렉토리 프로그램에 쉘 기본값을 실행합니다. 명령이 완료 될 때까지 기다려야하는 프로그램이 필요하면

try { 
    Process p = Runtime.getRuntime().exec("ls -l"); 
    BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); 
    String str = br.readLine(); 
    while(str!=null) { 
     System.out.println(str); 
     str=br.readLine(); 
    } 
} 

, 당신은 p.waitFor()를 사용할 수 있습니다.

관련 문제