16

私は JRE 1.7 を使用していますが、user.homeSystem プロパティが非常に異常であることを発見しました。JVM はこの値をどのように設定しますか?

4

2 に答える 2

24

この Java バグでその方法が説明されています: http://bugs.sun.com/view_bug.do?bug_id=4787931

システム プロパティuser.homeは次のように設定されます。

  1. キーのレジストリ値を読み取ります。HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop
  2. この値の親パスを取得しますが、環境変数は解決しません。

例: %userprofile%\Desktop=> %userprofile%(未解決の環境変数)

この問題は、Java 8 で修正される必要があります。

関連参照: Java user.home が %userprofile% に設定されており、解決されていません

于 2013-06-03T04:20:31.970 に答える
8

Windowsでは、受け入れられた回答に記載されているように取得され、デスクトップフォルダーの場所に依存します。

デフォルトのデスクトップ フォルダの場所を変更し、user.home を同じフォルダに置きたい場合の回避策があります。

これを環境変数に追加します:
_JAVA_OPTIONS:-Duser.home=%HOMEDRIVE%%HOMEPATH%

またはコマンドラインで:
set _JAVA_OPTIONS=-Duser.home=%HOMEDRIVE%%HOMEPATH%

このページのコメントで解決策を見ました: http://www.timehat.com/javas-user-home-is-wrong-on-windows/

于 2014-02-06T09:46:56.677 に答える