2012-12-26 7 views
9

ben sınıf yolunda bir dosyayı (src/main/resources/test.txt) yüklemeye çalışır aşağıdaki uygulamayı çalıştırmak çalışıyorum:mvn exec kullanırken sınıf için src/main/kaynaklar ekleyebilir nasıl java

package com.example; 

public class Main { 
    public static void main(String[] args) { 
     System.out.println(Main.class.getResource("test.txt")); 
    } 
} 

mvn exec:java -Dexec.mainClass=com.example.Main yaptığımda, komut satırında null çıktısını alıyorum.

Bu nedenle, sınıf yoluna eklenen src/main/resources içindeki dosyaları nasıl alabilirim? mvn package'u çalıştırdığımı, oluşturulan target/test.jar'u kontrol ettiğimi ve en üst düzeyde test.txt'u içerdiğini doğruladığımı unutmayın.

cevap

6

bir çizgi bunu çözmek gerekir

System.out.println(Main.class.getResource("/test.txt")); 
Eğer altında test.txt dosyasını yerleştirilen eğer Kodunuz çalışacak

:

src/main/resources/com/example 
+2

Eğer com/example pakete metin.txt koyarsanız o çalışmayacak. Bu çalışmayı doğru bir şekilde elde etmek için test.txt dosyasını src/main/resources dosyasına başka bir şey eklemeniz gerekir. – khmarbaise

+2

Tamam. Sanırım şimdi anlıyorum. Yani 'getResource' sınıf örneğine göre yolları yorumluyor (bu yüzden' Main' 'com.example'de bulunduğundan yanlışlıkla 'src/main/src/main/resources/com/example/test.txt' yerine src/main arıyordum./kaynaklar/test.txt') – user1930555

+0

Awesome answer. Bunu kendim merak ediyordum. – ktm5124

İlgili konular