Java でユーザーのホームディレクトリを見つける最適な方法は何ですか?
問題は、ソリューションがクロスプラットフォームである必要があることです。つまり、Windows 2000、XP、Vista、OS X、Linux、およびその他の Unix バリアントで動作する必要があります。私は、すべてのプラットフォームでこれを実現できるコード スニペットと、プラットフォームを検出する方法を探しています。
Javaのバグによる4787931システム プロパティはuser.home
Windows XP では正しく動作しないため、このシステム プロパティを使用することはクロスプラットフォームではないため、適切な解決策ではありません。
ベストアンサー1
あなたが言及しているバグ (バグ 4787391) は、Java 8 で修正されています。古いバージョンの Java を使用している場合でも、このSystem.getProperty("user.home")
アプローチはおそらく依然として最善です。このuser.home
アプローチは、非常に多くのケースで機能するようです。Windows では、ホーム ディレクトリの意味に関する概念が変化するため、100% 完全なソリューションを実現するのは困難です。 では十分でない
場合は、Windows 用の の定義を選択して使用し、 で適切な環境変数を取得することをuser.home
お勧めします。home directory
System.getenv(String)