在Java Gradle项目中设置资源文件夹

Chr*_*Tei 6 java gradle build.gradle

我正在尝试建立一个Gradle Java项目,但是由于某种原因,我似乎无法在构建中注册资源文件夹。每当我尝试写入文件时,它都会写入项目根目录而不是资源文件夹。

我的项目目录如下:

  • src
    • 主要
      • 爪哇
      • 资源

这是我的build.gradle文件

apply plugin: 'java'
apply plugin: 'application'

repositories {
        mavenCentral()
}

mainClassName='Test'


sourceSets {
        main {
                java {
                        srcDirs= ["src/main/java"]
                }
                resources {
                        srcDirs= ["src/main/resources"]
                }
        }
}
Run Code Online (Sandbox Code Playgroud)

这是我用来查看是否可以访问资源文件夹的Test.java

import java.io.*;

public class Test {

        public static void main(String[] args) throws Exception {

                FileWriter writer = new FileWriter(new File("Test.txt"));
                writer.write("Test");
                writer.close();

        }

}
Run Code Online (Sandbox Code Playgroud)

Jos*_*nez 5

可以从系统属性中检索当前目录user.dir。例如System.getProperty("user.dir")

资源目录与工作目录不同,工作目录是您的应用程序从中执行的目录。资源目录主要用于存放运行前创建的文件,以便运行时访问。它不打算在运行时写入。这就是为什么当您在 Gradle 中设置资源路径时,它不会将您当前的工作目录设置为资源路径。

你仍然可以做你想做的事,但你必须写信给./src/main/resources/Test.txt. 我知道有时在开发应用程序时,您可能希望能够写入资源文件夹。但请注意,当应用程序在野外运行时,您不会写入资源文件夹,尤其是因为它通常位于 JAR 文件中。