【发布时间】: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,它不会工作。你介意接受答案吗?