- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我们公司最近从 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 。以下是导出和导入注册表项的方法:
regedit
。这将打开注册表编辑器。HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell 文件夹
。Shell Folders
并选择Export。Shell Folders
作为文件名并保存文件。%userprofile%
替换为 C:\\Users\\yourusername
。保存并关闭文件。Shell Folders.reg
并点击打开。Shell Folders.reg
文件。关于Java user.home 被设置为 %userprofile% 并且没有被解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2134338/
我需要在 java 中添加一个用户配置文件变量,显然 %userprofile% 不起作用。当我尝试将其输入代码底部的目录时,它不接受它。但是我可以在命令行中回显我的 %userprofil% 用户配
我正在尝试将用户字段添加到用户配置文件管理选项卡中,以便能够在一个选项卡中更改每个用户属性。问题是 cmd 返回: 编辑:根据商王的评论编辑了代码,但仍然引发错误: : (admin.E202) 'a
我尝试导入 {{ user.userprofile. }} 和 {{ user.userprofile }} 没有成功。在 django shell 中,我可以使用 UserProfile.objec
我想获取桌面目录文件夹,所以我尝试了: char filename[ MAX_PATH ]; char newLocation[]="%userprofile%\\desktop\\myfil
在我的Yaml电话中,我有 --- title: "`r paste0('Test. Done ', format(Sys.Date(), '%B-%Y'))`" output: word_doc
我需要帮助将当前记录的 %USER% 添加到路径中,这是我目前的代码: DirectoryInfo dir = new DirectoryInfo(@"%USERPROFILE%\Local Sett
我想开始我的程序 start %USERPROFILE%\.myProgramm\myProgramm.exe 但现在我收到一条弹出消息,提示找不到文件夹 C:\Documets。这是由缺少省略号引起
我的代码正确吗?似乎可以编译但不能正常工作.. CString testing = _T(" --url=") + cstring + _T(" --out=%USERPROFILE%\\snapsh
所以我试图将我的文件保存到 C: 驱动器上的文档中。所以它允许我把它给别人,它会保存到他们的文档中。 我阅读了 %USERPROFILE% 的意思是抓取 C:\Users\%USERPROFILE%\
我正在尝试为用户创建一个小应用程序以获取联系人。我使用 django-profiles 作为我的个人资料的基础。现在一切正常,直到我尝试提交编辑联系表单并收到此错误。 Cannot assign ""
所以我用字段 score 扩展了我的用户。像这样: 模型.py: class UserProfile(models.Model): user = models.OneToOneField(Us
在.NET中,我们可以检索“特殊文件夹”的路径,例如文档/桌面等。今天我试图找到一种方法来获取“下载”文件夹的路径,但它看起来不够特别。 我知道我可以只执行“C:\Users\Username\Dow
我想创建一个“更新用户的个人资料”页面来让用户修改他们的个人资料,所以我想出了以下模型: class Profile(models.Model): user = models.OneToOne
我正在试验文件夹重定向,在设置它之后,我很快意识到任何具有环境变量(例如 %UserProfile%)的 VBS 脚本都变得不可用。 例如: C:\MD %UserProfile%\Desktop\
我尝试按照 https://docs.djangoproject.com/en/1.9/topics/auth/customizing/#extending-the-existing-user-mod
我正在尝试运行 .save() 来更改用户模型字段的值。 这是我的代码: View .py: def traffic_task(request): tasks_traffic = Task.o
如果省略\My Documents\,以下函数将起作用,但我需要访问我的文档。 OpenTextFile("test.txt"); function OpenTextFile(file) {
我希望用户只能登录和注销,不能自己编辑他们的个人资料,只有管理员可以注册和编辑用户和他们的个人资料。 # my_app/models.py from django.db import models f
我用这样的用户配置文件扩展 django 用户模型: class UserProfile(BaseModel): user = models.ForeignKey(User, unique=T
我在 Django 中选择数据时遇到一些问题。 models.py class Location(models.Model): user = models.ForeignKey(User, o
我是一名优秀的程序员,十分优秀!