【问题标题】:Accessing external resources from a user-defined file path (Java)从用户定义的文件路径访问外部资源 (Java)
【发布时间】:2017-06-05 20:16:45
【问题描述】:

我有一个 Java 程序,它从位于我的 C 驱动器中的大量 .txt 文件中存储/调用数据。目前,这些文件的路径已硬编码到我的 Java 程序中。

我现在正在寻找分发这个软件,我想知道如何制作它,以便用户可以在安装过程中指定一个文件位置,然后我可以将我的程序指向这个位置,而无需对其进行硬编码。

这是非常标准的功能,但我一直在努力寻找如何实现它。我可以使用相对文件路径,即将 java 程序的 .exe 与 .txt 文件放在同一个文件夹中,还是必须使用 Windows 注册表路径之类的东西?

非常感谢您的帮助。

干杯, 罗宾

【问题讨论】:

  • 我会为自己和用户省去麻烦。使用“user.home”+您的文件夹作为位置。大多数东西默认存储在主目录中:maven、ssh、gradle、shell history。无需以其他方式旋转它
  • 感谢您的回答,只是为了澄清一下,这只是将其放在 C:/Users/Person 文件夹中并将其修复为将始终安装到的已知位置,对吗?所以这本质上是一种更好的硬编码“用户”根位置的方法
  • 是的。当您构建路径时,从父目录 System.getProperty("user.home") 开始。不要忘记也使用 File.separator 来避免 \ 和 / 之间的冲突
  • 感谢您的澄清。请问这种方法是否比简单地在软件中编码(例如,C:\Program Files)更可取?
  • 当有人想在 linux 或 OS X 中使用你的东西时,你正在使用 java,它不会工作。你介意接受答案吗?

标签: java windows file exe


【解决方案1】:

使用系统属性“user.home”作为路径的根。这些天安装的大多数东西都使用这个系统属性作为父目录和预定义的文件夹。这些省去了很多麻烦。将其与 File.separator 字符结合起来,以避免进一步的可移植性问题

【讨论】:

    猜你喜欢
    • 2012-04-27
    • 1970-01-01
    • 2018-03-06
    • 2013-01-02
    • 2016-05-13
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多