
Javaの中で、カレントなディレクトリを移動させ、相対PATHで既存ディレクトリを認識させたいのですが、期待する結果が得られません。
Javaの中でカレントディレクトリを移動する場合、System.setProperty()メソッドを利用して、"user.dir"を書き換えれば良いと思ったのですが、間違いでしょうか?
間違いである場合、Javaの中ディレクトリを移動させる方法はあるのでしょうか?
以下のプログラムは、下記状況下にて実行したものです。
C:\Java
|-app ←プログラムを実行時にいるフォルダ
|-sub ←相対PATHで認識させたい既存フォルダ
----------- ソース --------------------------
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にならない!
--------------------------------------------
No.1ベストアンサー
- 回答日時:
>System.setProperty()メソッドを利用して、"user.dir"を書き換えれば良いと思ったのですが、間違いでしょうか?
Systemプロパティは、いわば環境変数のようなものなので、"user.dir"の書き換え即ちカレントディレクトリの移動とはならないです。
>Javaの中ディレクトリを移動させる方法はあるのでしょうか?
JAVA の基本機能(OS依存のAPIを呼び出すなどをしないという場合)では、カレントディレクトリの移動はできなかったと思います。
カレントディレクトリの移動はできないのですね。
カレントディレクトリが肝となる動作を必要とする処理をJavaの世界だけで描こうとする時は、
Runtime.exec()などを利用して作業ディレクトリを指定して別のJavaプロセスを発行するしかないかもしれませんね。。。
非常に泥臭いですが・・・
アドバイスどうもありがとうございました。

No.2
- 回答日時:
プログラムでカレントディレクトリを変更するのは、基本的に不可能です。
OSのコマンド"CD"などを使えばできますが、OS依存になってしまいます。
もしくは、
File#getAbsoluteFileを使えば、
システムプロパティの"user.dir"からの相対パスを取得できます。
File f = new File("sub").getAbsoluteFile();
参考URL:http://www.kab-studio.biz/Programing/JavaA2Z/Wor …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- UNIX・Linux 実行の仕方及び実行結果が分かりません。 2 2022/11/17 19:31
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- UNIX・Linux 空のディレクトリで dir を行ったとき 4 2023/05/05 17:54
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- Visual Basic(VBA) Excel VBAについて、 フォルダ内のファイルを全て開きたい場合、 FSOを使えば、Dirは使わ 1 2023/01/27 13:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のポインターに関する警告
-
JSPやサーブレットでSystem.out...
-
EclipseでJava
-
[JAVA]try 内の変数を外で!?
-
文字列の引き算
-
FPGAのシュミレーション
-
javaで判別式のプログラミング...
-
Javaでカレントディレクトリを...
-
「続行するには何かキーを押し...
-
会員情報登録プログラムの作成...
-
JavaでMIDIを使って音を出したい
-
改行の判定方法
-
JAVAのDouble型の小数点以下の...
-
JAVAのエラーの意味が分かりま...
-
DOMで要素の値がNULL
-
System.err. printlnとSystem.o...
-
ORA-01858: 数値を指定する箇所...
-
数値⇒漢数字変換 java
-
Log4jで機能毎に別ファイルへ出...
-
JSPにて、変数を利用してフォン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインターに関する警告
-
JSPやサーブレットでSystem.out...
-
EclipseでJava
-
[JAVA]try 内の変数を外で!?
-
JAVAのDouble型の小数点以下の...
-
文字列の引き算
-
「続行するには何かキーを押し...
-
会員情報登録プログラムの作成...
-
Javaのコマンドライン引数を使...
-
java プログラミングについて
-
Javaでカレントディレクトリを...
-
複数行キーボード入力した後に...
-
JAVA 文字色変更
-
エクセルマクロ文で、赤文字セ...
-
配列を後ろから数えるには?
-
java シンボルが見つかりません...
-
改行の判定方法
-
JAVAのエラーの意味が分かりま...
-
JAVA 三角形の判定
-
nullcline
おすすめ情報