[解決済み] Javaでカレントワーキングディレクトリを取得する方法は?
質問
例えば、私のメインクラスが
C:\Users\Justian\Documents\
. にあることを示すにはどうしたらよいでしょうか?
C:\Users\Justian\Documents
?
ハードコーディングという選択肢はありません-他の場所に移動しても適応できるようにする必要があります。
私は、フォルダ内の CSV ファイルの束をダンプし、プログラムにすべてのファイルを認識させ、データをロードしてそれらを操作したいのです。私は本当に、そのフォルダーに移動する方法を知りたいだけなのです。
どのように解決するのですか?
一つの方法として
システム・プロパティ
System.getProperty("user.dir");
これで、プロパティが初期化されたときの現在の作業ディレクトリが得られます。これはおそらくあなたが欲しいものでしょう。
java
コマンドが発行された場所、この場合は処理するファイルがあるディレクトリですが、実際の .jar ファイルはマシン上の別の場所に存在する可能性があります。実際の .jar ファイルのディレクトリを持つことは、ほとんどの場合、それほど有益ではありません。
以下は、.classファイルや.jarファイルがどこにあるかにかかわらず、コマンドが呼び出された現在のディレクトリを出力します。
public class Test
{
public static void main(final String[] args)
{
final String dir = System.getProperty("user.dir");
System.out.println("current dir = " + dir);
}
}
にある場合は
/User/me/
にあり、上記のコードを含む .jar ファイルが
/opt/some/nested/dir/
とすると、コマンド
java -jar /opt/some/nested/dir/test.jar Test
は出力します。
current dir = /User/me
.
また、良いオブジェクト指向のコマンドライン引数パーサーを使用することも検討すべきです。
私が強くお勧めするのは
JSAP
という Java Simple Argument Parser をお勧めします。これを使うと
System.getProperty("user.dir")
を使い、代わりに何か他のものを渡してその動作を上書きすることができます。より保守性の高いソリューションです。これにより、処理するディレクトリを渡すのが非常に簡単になります。
user.dir
にフォールバックできるようになります。
関連
-
ApplicationContextの起動エラーです。条件レポートを表示するには、アプリケーションを'de'で再実行します。
-
-bash: java: コマンドが見つからない 解決方法
-
eclipse にリソースリーク:'in' が閉じない
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
Git Pull Failed マージされていないファイルがあるため、Pull できません。
-
ajax コミット リソースの読み込みに失敗しました: サーバーはステータス 400 で応答しました ()
-
Jsoup-Crawlingの動作
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
アノテーション「@Retention」の役割
-
git pull appears現在のブランチに対するトラッキング情報がありません。
-
swagger2 モデルが表示されない モデルが見つからない @ApiModel アノテーションが表示されない問題