Javaで完全なクロスプレートフォームコンソールを作成したいと思います。
私が抱えている問題は、cd
コマンドを使用するとパスがリセットされることです。たとえば、cd bin
をcd ../
実行すると、最初のアプリはアプリのディレクトリから実行され、2番目のアプリはまったく同じディレクトリから実行されます。
特定のフォルダに移動してプログラムを実行したい場合は、次のようなことを行う必要があります。
cd C:\mydir & cd bin & start.exe
私がやりたいのは、このcmdをさまざまな部分に分割することです。
cd C:\mydir
その後cd bin
、start.exe
どうやってやるの?cd
現在のパスを保存して使用する方法はありますか?
私が使用するコードは次のとおりです。
String[] cmd_exec = new String[] {"cmd", "/c", cmd};
Process child = Runtime.getRuntime().exec(cmd_exec);
BufferedReader in = new BufferedReader(new InputStreamReader(child.getInputStream()));
StringBuffer buffer = new StringBuffer();
buffer.append("> " + cmd + "\n");
String line;
while ((line = in.readLine()) != null)
{
buffer.append(line + "\n");
}
in.close();
child.destroy();
return buffer.toString();
コマンドを実行してから、コンソールの内容を返します。(これは今のところウィンドウ用です)。