【问题标题】:java user.home to return in local languagejava user.home 以本地语言返回
【发布时间】:2010-06-30 10:50:06
【问题描述】:

当我在土耳其语 Windows 7 上运行 System.getProperty("user.home") 时,我得到“C:\Users\aaaa”,即使我的计算机中不存在“用户”文件夹(我有“用户”的土耳其语翻译)。如何获得正确的 user.home 信息? 谢谢你

【问题讨论】:

  • 哇。那很有意思。可能与以下错误有关:bugs.sun.com/bugdatabase/view_bug.do?bug_id=4787931
  • @aioobe提到的bug建议在java 5中使用System.getenv("USERPROFILE"),你用的是什么版本的java?
  • 具体版本信息为:C:\>java -version java version "1.6.0_18" Java(TM) SE Runtime Environment (build 1.6.0_18-b07) Java HotSpot(TM) 64-Bit Server VM (build 16.0-b13, mixed mode)
  • 哎哟!!那个 bug 有将近 7.5 年的历史,有 139 票,在前 25 个 bug 列表中排名第 7。

标签: java internationalization


【解决方案1】:

您运行的是哪个版本的 Windows?在 Vista 及更高版本(2008、2008R2、Windows7)上,该文件夹在文件系统中称为Users,与当前语言无关。但是 Windows 资源管理器以 UI 的语言显示它,在我的例子中是“Benutzer”(德语)。您可以在命令窗口中查看该文件夹的真实名称为Users

【讨论】:

  • 是的,这肯定会造成一些混乱。 +1
  • 你是对的。我使用 java C:\Users 目录以编程方式检查它存在,但翻译后的文件夹名称不存在。
【解决方案2】:

即使“用户”文件夹没有 存在于我的电脑中(我有 “用户”的土耳其语翻译)。

那不是真的。您有“用户”文件夹。 Windows 只是在显示时自动翻译它。但是您必须将“用户”用于文件系统路径,这是user.home 返回的内容。本地化名称仅与向用户显示相关。我不确定如何从 Java 代码中获取它。

坦率地说,我认为向用户显示与文件系统中实际存在的不同文件夹名称的整个概念是一种奇怪的变态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多