Javaでカレントディレクトリを移動することは可能?

Javaの中で、カレントなディレクトリを移動させ、相対PATHで既存ディレクトリを認識させる場合がありませんか?

成功しましたか?

多分、OSのコマンド”CD”などを使えばできますが、OS依存になってしまいます。Javaの中でカレントディレクトリを移動する場合、System.setProperty()メソッドを利用して、”user.dir”を書き換えれば良いと思った方がいらっしゃるかもしれないですが、

実は、プログラムでカレントディレクトリを変更するのは、基本的に不可能です。

下記のソースと実行結果を見るとすぐ分かると思います。




import java.io.*;
class TestTest
{
public static void main(String args[])
{
System.out.println(”Current dir : ” + System.getProperty(”user.dir”));
System.out.println(”Move Dir !”);
System.setProperty(”user.dir”,”C:\\Java”);
System.out.println(”Current dir : ” + System.getProperty(”user.dir”));
File f = new File(”sub”);
System.out.println(”Dir existance : ” + f.exists());
}
}

出力結果:

C:\Java\app>java TestTest
Current dir : C:\Java\app
Move Dir !
Current dir : C:\Java
Dir existance : false ←trueにならない!

JAVA の基本機能(OS依存のAPIを呼び出すなどをしないという場合)では、カレントディレクトリの移動はできないです。

Leave a Reply

Your email address will not be published. Required fields are marked *