【问题标题】:Jar accessing to external files [duplicate]Jar访问外部文件[重复]
【发布时间】:2016-09-30 22:10:17
【问题描述】:

我有一个这样的文件夹:

我的文件夹:

  • file1.xml
  • file2.xml
  • project.jar

但如果在我使用的课程中:

File f = new File("file1.xml");

我收到一个错误,因为它找不到文件。为什么?

【问题讨论】:

  • jar 正在其自身内部寻找该文件,但没有找到它。您必须明确声明目录,或将 XML 文件移动到 jar 文件中。
  • 我无法在我的 jar 中移动 xml,因为我必须修改它们并在运行时更新它们。
  • 您如何运行您的应用程序?你当时的工作文件夹是什么?
  • 然后声明路径。或者从属性文件中引用它。尝试./file1.xml./file2.xml 作为开始。或者将 XML_DIRECTORY 放在可以读取和修改的属性文件中。并从该根目录引用它们。
  • 谢谢 ManoDestra,它与“./file.xml” 配合得很好 :))

标签: java eclipse file jar


【解决方案1】:

您应该在代码中使用相对路径。

示例:File f = new File("./file1.xml");

【讨论】:

  • 谢谢 :) 它有效!
【解决方案2】:

如果您使用的是 Windows,则您发布的代码可以使用,但不适用于默认父文件是您家的 Linux。 但是您可以在任何操作系统中使用:

public class MyClass {
  public void loadFile() {
    URL url = MyClass.class.getProtectionDomain().getCodeSource().getLocation();
    File jar = new File(url.toURI());
    File f = new File(jar.getParent(), "file1.xml");
    //your code
  }
}

PS:这需要在 project.jar 中,因为您正在获取 jar 文件所在的位置。

【讨论】:

    猜你喜欢
    • 2011-01-15
    • 1970-01-01
    • 2012-01-05
    • 2021-02-02
    • 2014-09-16
    • 2015-11-28
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    相关资源
    最近更新 更多