コマンドプロンプトを開いて(そして他のシステム用の他のターミナルを推測します)、新しく開いたウィンドウでコマンドを実行することは可能ですか?
現在私が持っているのはこれです:
Runtime rt = Runtime.getRuntime();
rt.exec(new String[]{"cmd.exe","/c","start"});
「start」の後に次のコマンドを追加しようとしました。コマンドを含む別のrt.execを実行しようとしましたが、それを機能させる方法が見つかりません。
重要な場合は、次のようなコマンドを実行しようとしています。
java -flag -flag -cp terminal-based-program.jar
編集残念ながら、私はいくつかの奇妙な発見がありました。コマンドプロンプトを正常に起動し、次を使用してコマンドを渡すことができました。
rt.exec("cmd.exe /c start command");
ただし、1つのコマンドでしか機能しないようです。「cmd.exe/c start command&command2」のようなコマンドセパレータを使用しようとすると、2番目のコマンドがバックグラウンドで渡されるためです(rt.exec( "command2");を使用した場合と同じように)。 。ここでの問題は、コマンドプロンプトが実行されているディレクトリを変更する必要があることに気付きました。これは、jarファイルへのフルパスを使用すると、jarファイルがコマンドプロンプトのアクティブディレクトリからデータを誤って読み取るためです。リソースを含むjarのディレクトリ。