1. ホーム

[解決済み】Javaでユーザーのホームディレクトリを見つけるための最良の方法は何ですか?

2022-03-26 23:19:04

質問

Javaでユーザーのホームディレクトリを見つける最良の方法は何ですか?

Windows 2000、XP、Vista、OS X、Linux、その他のUnixの亜種で動作する必要があります。私は、すべてのプラットフォームでこれを達成できるコードの断片と、プラットフォームを検出する方法を探しています。

Java のバグにつきまして 4787931 システムプロパティ user.home はWindows XPでは正しく動作しないため、このシステムプロパティを使用することは、クロスプラットフォームでないため、許容される解決策ではありません。

解決方法は?

ご指摘のバグ(バグ4787391)は、Java 8で修正されました。古いバージョンのJavaを使用している場合でも System.getProperty("user.home") のアプローチは、おそらく今でも最良の方法です。その user.home のアプローチは、非常に多くのケースでうまくいくようです。Windowsでは、ホームディレクトリの意味するところが変化するため、100%防弾の解決策は難しいです。

もし user.home の定義を選択することをお勧めします。 home directory で適切な環境変数を取得し、それを使用します。 System.getenv(String) .