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を呼び出すなどをしないという場合)では、カレントディレクトリの移動はできないです。
メインコンテンツEND ■
Posted on Tuesday, 23rd December 2008 by admin
Tags: Java, user.dir, カレントディレクトリ
Posted in Java | Comments (0) | 3,166 views
