> Java > java지도 시간 > Java 프로그램 내에서 쉘 명령을 어떻게 실행할 수 있습니까?

Java 프로그램 내에서 쉘 명령을 어떻게 실행할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-12-18 10:50:11
원래의
614명이 탐색했습니다.

How Can I Run Shell Commands from within a Java Program?

Java에서 셸 명령 실행: 세부 가이드

Java에서는 Runtime.exec() 메서드를 사용하여 시스템 명령을 실행할 수 있습니다. 그러나 명령 실행 방법을 이해하는 것은 어려울 수 있습니다.

명령 프롬프트 열기

올바르게 제공한 코드는 명령 프롬프트를 엽니다.

Runtime rt = Runtime.getRuntime();
rt.exec(new String[]{"cmd.exe","/c","start"});
로그인 후 복사

새 명령 프롬프트 창이 열립니다.

실행 중 명령

명령 프롬프트 내에서 명령을 실행하려면 명령을 실행하기 전에 명령줄에 명령을 추가하면 됩니다. 예를 들어 디렉터리를 변경하고 특정 명령을 실행하려면:

디렉터리 변경

// Change directory and run "dir" command
ProcessBuilder builder = new ProcessBuilder(
    "cmd.exe", "/c", "cd \"C:\Program Files\Flowella\" && dir");
로그인 후 복사

위의 명령줄은 cmd.exe에 다음 명령을 순서대로 실행하도록 지시합니다. :

  1. 현재 디렉터리를 "C:Program"으로 변경하세요. FilesFlowella"
  2. 해당 디렉터리에서 "dir" 명령을 실행

다른 명령 실행

명령을 수정하여 모든 명령을 실행할 수 있습니다. "cd" 다음 줄. 예를 들어, "ping" 명령을 실행하려면:

ProcessBuilder builder = new ProcessBuilder(
    "cmd.exe", "/c", "cd \"C:\Program Files\Flowella\" && ping www.google.com");
로그인 후 복사

ProcessBuilder 사용

ProcessBuilder 클래스는 명령을 실행하는 보다 다양한 방법을 제공합니다. 이를 통해 다음을 수행할 수 있습니다.

  • 프로세스의 표준 오류 및 출력 스트림 리디렉션
  • 환경 변수 설정
  • 작업 디렉터리 설정

위의 예에서는 프로세스의 표준 오류를 표준 출력으로 리디렉션하여 읽기를 단순화했습니다.

사용 예

다음 코드는 지정된 디렉터리에서 "dir" 명령을 실행합니다.

import java.io.*;

public class CmdCommand {
    public static void main(String[] args) throws Exception {
        String dir = "C:\Program Files\Flowella";
        ProcessBuilder builder = new ProcessBuilder(
            "cmd.exe", "/c", "cd \"" + dir + "\" && dir");
        builder.redirectErrorStream(true);
        Process p = builder.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
        while (true) {
            line = r.readLine();
            if (line == null) { break; }
            System.out.println(line);
        }
    }
}
로그인 후 복사

이 코드는 현재 디렉터리를 "C:Program FilesFlowella"로 복사하고 "dir" 명령을 실행하여 콘솔에 출력을 인쇄합니다.

위 내용은 Java 프로그램 내에서 쉘 명령을 어떻게 실행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿