2016-12-24 127 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文件中。

相關問題