2

何らかの理由で、新しいプロジェクトで次のように入力しているため、構成または何かを変更したに違いありません。

System.out.println(System.getProperty("user.home"));

次の出力を取得します。

C:\

以前は、次のようなものを返していましたC:\Users\...

クリアする必要がある構成ファイルはありますか?

4

1 に答える 1

7

「<code>System.getProperty("user.home");」を呼び出すと、コードでは、JVM は Windows 環境変数を使用してユーザーのプロファイルの場所を特定するのではなく、ユーザーのデスクトップ ディレクトリを参照するレジストリ キーにアクセスします。次に、デスクトップの親ディレクトリを取得し、それがユーザーのプロファイル ディレクトリであると想定します。そのため、デスクトップ ディレクトリのレジストリ エントリを確認してください。HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\& それに応じて更新します。デスクトップ ディレクトリの登録キーの値が「<code>C:\\」の場合、「<code>System.getProperty("user.home"」を呼び出すと、JVM は値「<code>C:\」を返します。 );」あなたのコードで。たとえば、レジ​​ストリのデスクトップ キー エントリを「<code>C:\Users\YourName\Desktop」に変更できる場合、「<code>System」を呼び出すときに「<code>C:\Users\YourName」が取得されます。 .getProperty("user.home");」あなたのコードで。

ありがとうございました!

于 2012-10-02T16:57:02.217 に答える