Escolha um emulador de terminal em Java [duplicado]

0

Estou escrevendo uma ferramenta de console Java independente de plataforma e dentro da qual terá que executar alguns comandos em terminais independentes separados durante a execução.

No entanto, preciso saber qual terminal devo usar gnome-terminal ou xterm. isto é, aquele disponível nesse sistema particular. Uma vez que existem muitas variantes diferentes de linux estão disponíveis. Eu quero apoiar pelo menos os mais óbvios.

Normalmente, em Java System.getProperty("os.name") retorna Linux , mas não informa se o Ubuntu ou qualquer outra variante do Linux. Portanto, é difícil saber qual terminal iniciar no tempo de execução. Se gnome-terminal ou xterm ou se há algo mais que eu não sei.

Conjuntos de trabalho:

No Windows:

cmd /c start java -jar jarTool arguments

No Ubuntu:

gnome-terminal --execute java -jar jarTool arguments

ou

xterm -e java -jar jarTool arguments

Também apenas para informações adicionais, estou usando Runtime.getRuntime().exec(args or commands) para iniciar o terminal do programa Java em tempo de execução.

    
por Indigo 28.07.2014 / 19:23

2 respostas

1

Não existe um método fácil para determinar qual programa terminal usar no Linux. Embora seja possível obter informações de distribuição, o uso pode ou não remover o programa do terminal GUI padrão e instalar outros. Geralmente, a abordagem é obter uma lista de programas de terminal comuns e encontrar o primeiro utilizável. Por exemplo, aqui está como o guest virtual do linux virtual procura pelo terminal utilizável:

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
    
por 28.07.2014 / 20:17
0

É melhor se você executar os comandos usando %código% Isso funcionaria para toda distribuição de linux.

    
por 28.07.2014 / 19:28