【问题标题】:where does java look for files in netbeans? And is it possible to change the directory?java在哪里寻找netbeans中的文件?是否可以更改目录?
【发布时间】:2018-05-14 11:04:53
【问题描述】:

所以,我有一些 txt 文件要放在以下文件夹中:src/test/resources/__files

但是,当我运行我的项目时,我发现编译器正在项目文件夹中寻找文件。是否有任何改变,因为当我尝试创建 JAR 文件时会出现问题 - 然后需要手动将这些文件添加到目标文件夹中。

谢谢

【问题讨论】:

  • 你的项目是 Maven 还是 Gradle 项目?这些框架有你可以放置资源文件的地方,这样它们最终会出现在你的类路径中。
  • 它是一个 Maven 项目

标签: java maven netbeans


【解决方案1】:

由于您已经将资源文件放在src/test/resources 文件夹中,Maven 应该在运行时使它们在类路径中可用。在这种情况下,它们应该位于测试构建的类路径中。你可以试试下面的代码:

String fileName = "somefile.txt";
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource(fileName).getFile());

Mkyong site 很好地解释了资源在 Maven 中的工作原理。

【讨论】:

    【解决方案2】:

    您似乎正在使用 ma​​ven 构建工具,按照约定使用 src/main/java、src/main/resources 并用于单元测试 src/test/java 和 src/test/resources .

    然后这些文件不是真正的文件系统文件,而是资源,可能打包在一个 jar 中(如您所说):区分大小写,/ 路径分隔符和只读 InputStream。

    您可以将文件保留为资源(然后在 /src/main/resources/ 下),并将该文件用作真实文件的模板,位于应用程序 System.getProperty("user.dir")(工作目录)或 System.getProperty("user.home")(主页目录),见System Properties

    InputStream in = .... .class.getResourceAsStream("___files/xyz.txt");
    

    或者您可以在 maven 中从您自己的位置复制到目标/分发目录。

    【讨论】:

      【解决方案3】:

      我在 Windows 上使用 NetBeans 我写了String url = "src\\test\\resources\\__files" 文件夹结构 ProjFolder\src\test\resources\__files

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-01
        相关资源
        最近更新 更多