【问题标题】:FileNotFound after that I have created a jar fileFileNotFound 之后我创建了一个 jar 文件
【发布时间】:2017-05-05 15:43:11
【问题描述】:

创建 jar 文件后,我在这一行中收到此错误:

File inputFileCSV = new File(
                            System.getProperty("user.dir") + "\\src\\Grafica\\home.csv");

任何人都可以帮助我如何避免这种情况?

【问题讨论】:

  • 确保文件存在
  • 是的,在 eclips 上它可以工作,但是当我创建 jar 时不起作用
  • 也许 user.dir 在 eclispe 运行和从 jar 运行时会发生变化。
  • 尝试记录使用和不使用eclipse运行的值 System.getProperty("user.dir") 并比较输出。
  • 您是否检查过FileNotFoundException消息中显示的路径是否是您打算使用的路径,正确的路径?

标签: java jar filenotfoundexception


【解决方案1】:

"user.dir" 不是用户主目录,而是运行 java 的目录,也就是您启动 JVM 的目录。因此,如果您从不同的目录运行两个相同的 jar 文件,您将有不同的“user.dir”属性值

【讨论】:

    【解决方案2】:

    包含 yourApp.jar 的文件夹也应该包含 \src\Grafica\home.csv。像这样:
    --ParentFolder --App.jar --src --Grafica --home.csv

    【讨论】:

      【解决方案3】:

      在项目中组织您的文件,如下所示

      My Project
        |-src
          |-main
            |-java
            | |-MyPackage
            |   |-MyClass.java
            |-resources
              |-MyPackage
                |-home.csv
      

      然后使用如下方式访问您的文件

      InputStream IS = MyClass.class
          .getResourceAsStream("home.csv");
      

      【讨论】:

      • 它不起作用。我需要在我的 jar 中加载我尝试:getClass().getResource("/it_postal_codes.csv") 但它给了我 null
      猜你喜欢
      • 1970-01-01
      • 2015-07-29
      • 1970-01-01
      • 2021-05-28
      • 2013-08-13
      • 1970-01-01
      • 1970-01-01
      • 2013-07-08
      • 2012-08-27
      相关资源
      最近更新 更多