【问题标题】:How to determine value of user.home without writing a program?如何在不编写程序的情况下确定 user.home 的值?
【发布时间】:2012-01-12 20:17:06
【问题描述】:

在 Windows XP 系统中,有没有办法确定 Java 的 user.home 系统属性的当前值不必编写像 this 这样的示例程序?

即从命令行或控制面板或注册表等?

【问题讨论】:

  • 我看不出这个问题与编程有什么关系,因为你要求的是一些特别不相关的东西。
  • @Jack 对不起,你有这样的感觉。这是一个开发问题,就像这里一直在问有关版本控制(不是直接编程)的问题。我需要这个来理解 为什么 Windows XP 上的 Eclipse 没有创建每个用户的配置目录。有更好的提问地点的建议吗?
  • @RegexRookie 那为什么不问这个呢?创建一个程序来做到这一点有什么大不了的?无论如何,都应该初始化到window用户的主目录。
  • @Dave Newton 因为这是我自己继续进行故障排除所需的唯一信息。另请注意我在问题中提供的链接。如果您知道如何确定该值,您将得到祝福。请注意,它没有初始化为 Window 用户的主目录 (%HOME%)。
  • 如何在不运行程序的情况下确定 current 值?由 JVM 决定,没有任何保证。

标签: java


【解决方案1】:

如果您需要在同一用户帐户下运行 java 程序时找到将在 user.home 中返回的确切值,您应该实际运行 java 程序来获取该值。对于此属性,无法保证与 Windows 上的任何其他内容的稳定映射,并且当前使用的映射是错误的,并且最终更改的可能性不大。

此错误条目描述了 user.home 当前如何实际获得它的价值,并讨论了几种可能更合适的替代方案:http://bugs.sun.com/view_bug.do?bug_id=4787931

【讨论】:

  • 此信息令人大开眼界。我刚刚发现我系统中的 user.home 值是%USERPROFILE%——与直观的%HOME%相反,但与%HOMEDRIVE%\%HOMEPATH%相同。接受 +1。
  • @RegexRookie(这是彼得所说的。)
【解决方案2】:

要在不运行 Java 程序的情况下查找用户的主目录,您可以...

windows下需要看%HOMEDRIVE%%HOMEPATH%

Linux下可以使用$HOME

【讨论】:

  • 非常感谢!问题是运行eclipse -initialize 不会在%HOME% 中创建.eclipse 配置目录,如here 所述。所以,我怀疑 Java 本身有一些不同的价值......我想我将不得不编写这个扔掉的程序来找出答案。 :)
  • 如果你可以启动 Eclipse 那么你可以看到所有的系统属性。
  • System.getProperty("user.home") 确实 not 根据 int x4u 的答案中提到的错误报告返回 %HOMEDRIVE%%HOMEPATH% 的串联值。相反,Java 会查看注册表以确定用户的桌面文件夹并从其中删除 Desktop,这可能会重新采样 %USERPROFILE%
猜你喜欢
  • 2010-10-08
  • 2021-09-04
  • 2011-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
  • 2013-05-11
相关资源
最近更新 更多