Java에서 Linux 셸 명령 호출: 자세한 설명
Java 내에서 Linux 명령을 실행하려고 할 때 다음 사항을 이해하는 것이 중요합니다. 쉘 특정 명령의 미묘한 차이와 Java 런타임과의 호환성 환경.
도전 과제: 리디렉션 및 파이프를 사용하여 명령 실행
Process p = Runtime.getRuntime().exec("shell command")를 사용한 초기 시도가 실패함 리디렉션이나 파이프를 처리합니다. 이는 exec()가 시스템 셸과 직접 통합되지 않기 때문입니다.
해결 방법: 셸 "프록시" 활용
리디렉션 및 파이프를 사용하여 셸 명령을 실행하려면, "쉘 프록시" 접근 방식을 활용할 수 있습니다. 여기에는 중간 단계로 사용할 셸을 지정하는 작업이 포함됩니다.
구현:
exec()를 다음으로 바꾸세요.
Process p = Runtime.getRuntime().exec(new String[]{"csh", "-c", "cat /home/narek/pk.txt"});
In 이 예에서 "csh"는 "cat" 명령을 해석하는 데 사용되는 쉘 프록시입니다. /home/narek/pk.txt".
추가 참고 사항:
csh 사용 시 문제가 발생하면 대신 bash를 셸 프록시로 사용하는 것이 좋습니다.
Process p = Runtime.getRuntime().exec(new String[]{"bash", "-c", "ls /home/XXX"});
위 내용은 Java에서 리디렉션 및 파이프를 사용하여 Linux 셸 명령을 어떻게 실행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!