在将Java编写的应用程序分发给多个用户时,如何引用每个用户唯一的公共目录?
免责声明:在将Java编写的应用程序分发给多个用户时,如何引用每个用户唯一的公共目录?,java,directory,Java,Directory,免责声明:我知道这是学习Java的早期内容,但是,我只是一个业余爱好者,我是自学成才的。我只知道我在网上找到的信息有多好。请不要嘲笑或居高临下。我们曾经都是新人 如前所述,我编写了一个Java表单应用程序。它所做的是接受用户输入并将其写入Excel文件。如何动态引用每个用户计算机上的文件(尤其是Excel),该文件位于不同的目录中,但不必硬编码每个用户的确切文件路径并单独分发 谢谢 您可以让应用程序向用户询问路径。您可以让应用程序向用户询问路径。我想您正在寻找 这会给你,比如说,c:\users
我知道这是学习Java的早期内容,但是,我只是一个业余爱好者,我是自学成才的。我只知道我在网上找到的信息有多好。请不要嘲笑或居高临下。我们曾经都是新人 如前所述,我编写了一个Java表单应用程序。它所做的是接受用户输入并将其写入Excel文件。如何动态引用每个用户计算机上的文件(尤其是Excel),该文件位于不同的目录中,但不必硬编码每个用户的确切文件路径并单独分发
谢谢 您可以让应用程序向用户询问路径。您可以让应用程序向用户询问路径。我想您正在寻找 这会给你,比如说,
c:\users\mk
然后您可以将您的路径附加到该路径。我想您正在寻找 这会给你,比如说,
c:\users\mk
然后,您可以将路径附加到该目录。作为应用程序配置的一部分,让用户使用已知名称和所需目录或安装目录定义环境变量(然后使用该变量派生所需目录) 例如:
默认使用user.home是可以的,但我(个人)不喜欢这种技术(作为用户)。作为应用程序配置的一部分,让用户使用已知名称定义一个环境变量,该名称包含所需目录或安装目录(然后使用该变量派生所需目录) 例如:
默认使用user.home是可以的,但我(个人)不喜欢这种技术(作为用户)。以2个用户为例
UserA path: /opt/file/directories/target (contains the excel file)
UserB path: /opt/directories/target (contains the excel file)
除非应用程序能够访问某些带外信息,否则绝对无法找到目标
目录(除了搜索它,但随后您可能会找到另一个)。例如,Java提供了user.home
属性
String pathPrefix = System.getProperty("user.home");
所以您可以使用它,并使您的目标目录相对于它
这就是应用程序具有安装/工作目录的全部目的。另一个例子是Windows注册表。想象一下,你不得不从互联网上下载补丁。在找到您的路径之前,修补程序本身无法检查文件系统上的所有路径(每个用户都有不同的路径)。相反,它可以从Windows注册表中找到该路径(或者根据应用程序找到类似的路径) 以2个用户为例
UserA path: /opt/file/directories/target (contains the excel file)
UserB path: /opt/directories/target (contains the excel file)
除非应用程序能够访问某些带外信息,否则绝对无法找到目标
目录(除了搜索它,但随后您可能会找到另一个)。例如,Java提供了user.home
属性
String pathPrefix = System.getProperty("user.home");
所以您可以使用它,并使您的目标目录相对于它
这就是应用程序具有安装/工作目录的全部目的。另一个例子是Windows注册表。想象一下,你不得不从互联网上下载补丁。在找到您的路径之前,修补程序本身无法检查文件系统上的所有路径(每个用户都有不同的路径)。相反,它可以从Windows注册表中找到该路径(或者根据应用程序找到类似的路径) 除非您知道每个用户都有一个与文件完全相同的(相对)路径,否则您不能这样做。您可以使用
System.getProperty(“user.dir”)
来获取用户的主目录。@PeterLawrey user.dir是当前的工作目录,而不是主目录。@MK,说得好user.dir
也可能是一个选项,但是user.home
可能是一个更好的选择。除非您知道每个用户都有一个完全相同的(相对)文件路径,否则不能这样做。您可以使用System.getProperty(“user.dir”)
来获取用户的主目录。@PeterLawrey user.dir是当前的工作目录,不是主目录。@MK,说得好user.dir
也可能是一个选项,但是user.home
可能是一个更好的选择。现在,让我问另一个问题:哪一个对开发者更合适,要分发应用程序并让用户知道如何将Excel文件放在他们的文档文件夹中,或者创建一个对象,并让用户通过用户输入定义该对象?@Rincewind我会弹出一个小部件,询问文件位置,但我会用默认位置预先填充该小部件。我相信询问文件在哪里比告诉用户文件在哪里更方便。这是您应该与用户进行的讨论类型。无论哪种方式,我认为文件位置应该是用户可以配置的。我已经决定这样做。我将使用一个文本文件作为数据库来存储目录,用户将在运行小部件(JOptionPane)时建立所述目录。我的知识和经验是有限的,但是,使用文本文件和JOptionPane是不是不好的做法?@Rincewind我没有很多Java GUI经验,所以我可以