私は、実行時に別々のスタンドアロン端末でいくつかのコマンドを実行する必要があるプラットフォームに依存しないJavaコンソールツールを作成しています。
ただし、gnome-terminal または xterm のどちらを使用するかを知る必要があります。つまり、特定のシステムで利用可能です。利用可能なさまざまなLinuxバリアントがあるためです。私は少なくとも最も明白なものを支持したいと思います。
通常、JavaではSystem.getProperty("os.name")
これが返されますが、Linux
Ubuntuかそれ以外のLinuxのバリエーションかはわかりません。そのため、実行時にどの端末を起動するかを知ることは困難です。 gnome-terminalかxtermか、私が知らないものがあるかどうか。
ワークグループ:
Windowsの場合:
cmd /c start java -jar jarTool arguments
Ubuntuでは:
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ディストリビューションに適用されます。