gpt4 book ai didi

Java user.home 被设置为 %userprofile% 并且没有被解析

转载 作者:IT老高 更新时间:2023-10-28 20:55:25 28 4
gpt4 key购买 nike

我们公司最近从 Windows XP 升级到了 Windows 7 Enterprise。 JDK 安装不再将 user.home 设置为用户目录的完整路径,而是将 user.home 设置为 %userprofile%。这会导致 Eclipse、Maven 等应用程序出现很多问题。我现在必须在 JVM 中为每个应用程序设置 -Duser.home。有没有其他人经历过这个?有解决办法吗?这是否与安装 Windows 7 企业版有关?我试过 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 的错误链接:

在我安装的 Windows 7 Enterprise 中,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop 的值是 %userprofile%\Desktop

当我将此键的值更改为 C:\Users\politesp\Desktop 时,我的 user.home 会正确解析。知道为什么会这样吗?

最佳答案

大部分注册表项位于:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders

%userprofile% 开始。我将所有以 %userprofile% 开头的注册表项更新为以 C:\Users\myusername 开头。我在 Windows XP 上验证了路径实际上是硬编码的,并且没有使用 %userprofile%。 IT 人员提到,由于 Windows 7 中使用了默认配置文件,因此注册表项默认使用 %userprofile%。JVM 期望桌面路径是硬编码的。它不会评估环境变量。

您可以一一更新注册表项,也可以将文件夹导出并更改 key 。以下是导出和导入注册表项的方法:

  1. 转到开始 > 运行。
  2. 键入 regedit。这将打开注册表编辑器。
  3. 浏览到 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell 文件夹
  4. 右击Shell Folders并选择Export。
  5. 选择桌面作为目标,输入Shell Folders作为文件名并保存文件。
  6. 在文本编辑器中打开文件并将 %userprofile% 替换为 C:\\Users\\yourusername。保存并关闭文件。
  7. 返回注册表编辑器窗口并从主菜单中选择"file">“导入”。
  8. 选择 Shell Folders.reg 并点击打开。
  9. 关闭注册表编辑器并从桌面删除 Shell Folders.reg 文件。

关于Java user.home 被设置为 %userprofile% 并且没有被解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2134338/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com