08/03/05 23:03:54
>>684
cdがカレントディレクトリを移動するコマンドのことなら大抵の環境でできるよ。
1.
直接cdを外部プログラムとして起動しようとしていないか確認。
多くの環境ではcdは外部プログラムでなくシェルが解釈するコマンド。
したがってcdを使うにはシェルを起動して、それに対してcdコマンドを渡さなければならない。
たとえば、9x系でないwindowsなら、
new ProcessBuilder("cmd", "/C", "cd \\tmp & dir")
で起動されたプロセスは\tmpディレクトリのファイルリストを標準出力に出す。
2.
外部プログラムでカレントディレクトリを移動した後、
外部プログラムから復帰した後の親プロセス、つまりJavaプログラムの方で見ていないか確認。
多くの環境でカレントディレクトリの情報は各プロセスで独立している。
唯一、プロセスを起動する時に親プロセスから引き継がれるくらい。
子プロセスから親プロセスに伝播することはない。