Java user.home が %userprofile% に設定されており、解決されていません 質問する

Java user.home が %userprofile% に設定されており、解決されていません 質問する

当社は最近Windows XPからWindows 7 Enterpriseにアップグレードしました。JDKのインストールは設定されなくなりました。ユーザー.ホームをユーザー ディレクトリのフル パスに設定していますが、代わりに user.home を に設定しています%userprofile%。これにより、Eclipse、Maven などのアプリケーションで多くの問題が発生しています。現在、各アプリケーションの JVM で -Duser.home を設定する必要があります。これを経験した人は他にもいますか? これに対する修正方法はありますか? これは Windows 7 Enterprise のインストールに関連していますか? 1.5 JDK と 1.6 JDK を試しました。

プロパティのリストは次のとおりです。user.home に注意してください。

-- listing properties --
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=C:\Program Files\Java\jre6\bin
java.vm.version=16.0-b13
java.vm.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
path.separator=;
java.vm.name=Java HotSpot(TM) Client VM
file.encoding.pkg=sun.io
user.country=US
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=
java.vm.specification.name=Java Virtual Machine Specification
user.dir=C:\Users\politesp\Desktop
java.runtime.version=1.6.0_18-b07
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=C:\Program Files\Java\jre6\lib\endorsed
os.arch=x86
java.io.tmpdir=C:\Users\politesp\AppData\Local\Temp\
line.separator=

java.vm.specification.vendor=Sun Microsystems Inc.
user.variant=
os.name=Windows 7
sun.jnu.encoding=Cp1252
java.library.path=C:\WINDOWS\system32;.;C:\WINDOWS\Sun\...
java.specification.name=Java Platform API Specification
java.class.version=50.0
sun.management.compiler=HotSpot Client Compiler
os.version=6.1
user.home=%userprofile%
user.timezone=
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=Cp1252
java.specification.version=1.6
user.name=politesp
java.class.path=.
java.vm.specification.version=1.0
sun.arch.data.model=32
java.home=C:\Program Files\Java\jre6
java.specification.vendor=Sun Microsystems Inc.
user.language=en
awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixed mode, sharing
java.version=1.6.0_18
java.ext.dirs=C:\Program Files\Java\jre6\lib\ext;C:...
sun.boot.class.path=C:\Program Files\Java\jre6\lib\resour...
java.vendor=Sun Microsystems Inc.
file.separator=\
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport...
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+m...

アップデート:

Andreas_D からのバグへのリンクを使用して、次のことを発見しました。

の値HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop%userprofile%\デスクトップWindows 7 Enterprise のインストールについて。

このキーの値を に変更するとC:\Users\politesp\Desktop、user.home が正しく解決されます。なぜこのようなことが起こるのか、理由をご存知ですか?

ベストアンサー1

レジストリ キーの大部分は次の場所にあります。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell フォルダー

で始まりました%userprofile%。 で始まるすべてのレジストリ キーを で%userprofile%開始するように更新しましたC:\Users\myusername。Windows XP でパスが実際にハード コーディングされていて、%userprofile%使用されていないことを確認しました。IT 担当者によると、Windows 7 内で既定のプロファイルが使用されているため、レジストリ キーが既定で を使用するように設定されていると%userprofile%のことでした。JVM はデスクトップ パスがハード コーディングされていることを前提としています。環境変数は評価されません。

レジストリ キーを 1 つずつ更新することも、フォルダーをエクスポートしてキーを変更することもできます。レジストリ キーをエクスポートおよびインポートする方法は次のとおりです。

  1. [スタート] > [実行] に移動します。
  2. と入力しますregedit。レジストリ エディターが開きます。
  3. を参照しますHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
  4. 右クリックしてShell Folders「エクスポート」を選択します。
  5. 保存先としてデスクトップを選択し、Shell Foldersファイル名を入力してファイルを保存します。
  6. ファイルをテキスト エディターで開き、%userprofile%を に置き換えますC:\\Users\\yourusername。ファイルを保存して閉じます。
  7. レジストリ エディター ウィンドウに戻り、メイン メニューから [ファイル] > [インポート] を選択します。
  8. 選択しShell Folders.regて「開く」をクリックします。
  9. レジストリ エディターを閉じて、Shell Folders.regデスクトップからファイルを削除します。

おすすめ記事