Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在将Java编写的应用程序分发给多个用户时,如何引用每个用户唯一的公共目录?_Java_Directory - Fatal编程技术网

在将Java编写的应用程序分发给多个用户时,如何引用每个用户唯一的公共目录?

在将Java编写的应用程序分发给多个用户时,如何引用每个用户唯一的公共目录?,java,directory,Java,Directory,免责声明:我知道这是学习Java的早期内容,但是,我只是一个业余爱好者,我是自学成才的。我只知道我在网上找到的信息有多好。请不要嘲笑或居高临下。我们曾经都是新人 如前所述,我编写了一个Java表单应用程序。它所做的是接受用户输入并将其写入Excel文件。如何动态引用每个用户计算机上的文件(尤其是Excel),该文件位于不同的目录中,但不必硬编码每个用户的确切文件路径并单独分发 谢谢 您可以让应用程序向用户询问路径。您可以让应用程序向用户询问路径。我想您正在寻找 这会给你,比如说,c:\users

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

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


谢谢

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

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

我想您正在寻找

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


然后您可以将您的路径附加到该路径。

我想您正在寻找

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


然后,您可以将路径附加到该目录。

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

例如:

  • 告诉用户定义BLAMMY_HOME,其中包含软件的安装位置(名为BLAMMY)
  • 通过包含my_HOME和“/desired/directory/name”的值来派生所需的目录
  • 让用户定义包含所需目录的完整路径的“我的位置”
  • 在应用程序中使用“我的位置”的值

  • 默认使用user.home是可以的,但我(个人)不喜欢这种技术(作为用户)。

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

    例如:

  • 告诉用户定义BLAMMY_HOME,其中包含软件的安装位置(名为BLAMMY)
  • 通过包含my_HOME和“/desired/directory/name”的值来派生所需的目录
  • 让用户定义包含所需目录的完整路径的“我的位置”
  • 在应用程序中使用“我的位置”的值

  • 默认使用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经验,所以我可以