2016-12-24 125 views
0

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

我的项目目录如下:

  • SRC
    • 主要
      • 的Java
      • 资源

这里是我的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

检查访问的奇怪方法。将“1.txt”文件放在资源文件夹中,然后尝试调用Test.class.getResourceAsStream(“/ 1.txt”)以查看它是否可用 – AdamSkywalker

回答

2

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

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

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

相关问题