Java에서 터미널 에뮬레이터 선택

Java에서 터미널 에뮬레이터 선택

저는 런타임 시 별도의 독립형 터미널에서 일부 명령을 실행해야 하는 플랫폼 독립적인 Java 콘솔 도구를 작성하고 있습니다.

하지만 gnome-terminal 또는 xterm 중 어떤 터미널을 사용해야 하는지 알아야 합니다. 즉, 특정 시스템에서 사용 가능한 것입니다. 사용 가능한 다양한 Linux 변형이 있기 때문입니다. 나는 최소한 가장 분명한 것을 지지하고 싶다.

일반적으로 Java에서는 System.getProperty("os.name")이것이 반환되지만 LinuxUbuntu인지 아니면 다른 Linux 변형인지는 알려주지 않습니다. 그래서 실행시 어떤 터미널을 시작해야 할지 알기 어렵습니다. gnome-terminal인지 xterm인지 아니면 내가 모르는 다른 것이 있는지 여부.

작업 그룹:

Windows의 경우:

cmd /c start java -jar jarTool arguments

우분투에서는:

gnome-terminal --execute java -jar jarTool arguments

또는

xterm -e java -jar jarTool arguments

Runtime.getRuntime().exec(args or commands)또한 더 많은 정보를 제공하기 위해 런타임 시 Java 프로그램에서 실행되는 터미널을 사용하고 있습니다 .

답변1

Linux에서 사용할 터미널 프로그램을 결정하는 쉬운 방법은 없습니다. 배포 정보가 있더라도 기본 GUI 터미널 프로그램을 제거하거나 제거하지 않고 다른 프로그램을 설치할 수 있습니다. 일반적으로 접근 방식은 일반적으로 사용되는 터미널 프로그램 목록을 가져와서 사용 가능한 첫 번째 프로그램을 찾는 것입니다. 예를 들어, virtualbox Linux 게스트가 사용 가능한 터미널을 검색하는 방법은 다음과 같습니다.

GUESS_XTERMS="xterm rxvt dtterm eterm Eterm kvt konsole aterm"
for a in $GUESS_XTERMS; do
  if type $a >/dev/null 2>&1; then
    XTERM=$a
    break
  fi
done

답변2

명령을 실행하려면 다음 명령을 사용하는 것이 좋습니다. /Bin/Bash <terminal command> 이는 모든 Linux 배포판에 적용됩니다.

관련 정보