1

免责声明:
我知道这是在学习 Java 的早期就涉及的内容,但是,我只是一个业余爱好者,我是自学成才的。我只和我在网上找到的信息一样好。请不要嘲笑或居高临下。我们都是新人。

如前所述,我编写了一个 Java 表单应用程序。它的作用是接受用户输入并将其写入 Excel 文件。如何动态引用每个用户计算机上的文件(尤其是 Excel),该文件位于不同的目录中,但不必对每个用户的确切文件路径进行硬编码并单独分发?

谢谢!

4

4 回答 4

4

我想你正在寻找user.home财产

System.getProperty("user.home");

这会给你,说,c:\users\mk

然后你可以附加你的路径。

于 2013-09-25T19:04:27.797 回答
1

您可以让应用程序向用户询问路径。

于 2013-09-25T19:03:21.733 回答
1

作为应用程序配置的一部分,让用户使用所需目录或安装目录的已知名称定义环境变量(然后使用该变量派生所需目录)。

例如:

  1. 告诉用户定义 BLAMMY_HOME,其中包含您的软件的安装位置(名为 BLAMMY)。
  2. 通过连接 BLAMMY_HOME 和“/desired/directory/name”的值来派生所需的目录。

或者

  1. 让用户定义包含所需目录的完整路径的 BLAMMY_SPOT。
  2. 在您的应用程序中使用 BLAMMY_SPOT 的值。

默认使用 user.home 很好,但我(个人)不喜欢这种技术(作为用户)。

于 2013-09-25T19:06:28.837 回答
1

以 2 个用户为例

UserA path: /opt/file/directories/target (contains the excel file)
UserB path: /opt/directories/target (contains the excel file)

除非应用程序可以访问一些带外信息,否则绝对无法找到target目录(除了搜索它,但随后您可能会找到另一个目录)。例如,Java 提供了user.home属性

String pathPrefix = System.getProperty("user.home");

所以你可以使用它并使你的目标目录相对于它。

这就是具有安装/工作目录的应用程序的全部目的。再举一个例子,以 Windows 注册表为例。想象一下,您必须从 Internet 下载补丁程序。补丁本身无法检查文件系统上的所有路径,直到找到您的路径(每个用户都有不同的路径)。相反,它可以从 Windows 注册表中找到该路径(或根据应用程序可比较的路径)。

于 2013-09-25T19:07:55.670 回答