我正在尝试设置Gradle Java项目,但由于某种原因,我似乎无法在构建中注册resources文件夹。每当我尝试写入文件时,它都会写入项目根目录而不是资源文件夹。
我的项目目录如下:
这是我的build.gradle文件
apply plugin: 'java'
apply plugin: 'application'
repositories {
mavenCentral()
}
mainClassName='Test'
sourceSets {
main {
java {
srcDirs= ["src/main/java"]
}
resources {
srcDirs= ["src/main/resources"]
}
}
}
这是我的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();
}
}
答案 0 :(得分:2)
您可以从系统属性user.dir
检索当前目录。例如。 System.getProperty("user.dir")
。
资源目录与工作目录不同,工作目录是应用程序执行的目录。资源目录主要用于存储在运行时之前创建的文件,以便可以在运行时访问它们。它并不意味着在运行时写入。因此,当您在Gradle中设置资源路径时,它不会将当前工作目录设置为资源路径。
你仍然可以做你想做的事,但你必须写信给./src/main/resources/Test.txt
。我知道有时候在开发应用程序时,您希望能够写入资源文件夹。但请注意,当应用程序在野外运行时,预计不会写入资源文件夹,特别是因为它通常会在JAR文件中。