2016-02-15 13 views
5

tarafından yüklenen bir özelliklerinde mutlak yolunu bilmek:nasıl kodunun altına kullanarak özelliklerini yükleme ediyorum resourceBoundle

ResourceBoundle boundle = ResourceBundle.getBundle("file") 

Ben yüklenen dosyanın mutlak yolunu bilmek istiyorum. Mesela ben elde etmek istediğiniz bir tomcat webapps klasöründe bir web uygulamasında bu kodu çalıştırmak eğer:

c:\tomcat8\webapps\example\WEB-INF\classes\file.properties. 

nasıl bu yolu bilebilirim

?

+0

, dosya nedir? Dosya sınıfı – Musaddique

+0

nesnesidir "dosya" için değiştirdim. dosya, – fealfu

+0

özelliklerinin dosya adıdır. Bir web sunucusundaki kaynaklar sanaldır ve savaş dosyanız genişletilmemişse fiziksel dosyalarla eşlenemeyebilir. –

cevap

0

Bu yazıyla bu sorunu giderdim 'Getting current working directory'. Benim sorun için ben sadece çalışma dizinini öğrendikten sonra ben belki de bu çözüm, tüm durumları kapsamaz düşünüyorum mutlak yolunu

public class Test { 
public static void main(String... args) throws Exception { 
    URL location = Test.class.getProtectionDomain().getCodeSource().getLocation(); 
    System.out.println(location.getFile()); 
}} 

bulabilirsiniz, bu ihtiyaç, ama benim için yeterli.

0

Bir ResourceBundle gelen fiziksel konumunu alamayan, ancak bunu yüklemek için kullanılan yolu biliyorsanız, o zaman o fiziksel konumunu öğrenebilirsiniz. Şunun gibi: - zamanın en azından en

String resourceToLoad = "file"; 
URL url = this.getClassLoader().getResource(resourceToLoad); 
ResourceBoundle bundle = ResourceBundle.getBundle(resourceToLoad); 

url kaynağın fiziksel konumu olacaktır.

ResourceBundle'un özellik dosyası gibi bir şey yerine bir Java sınıfı tarafından da desteklenebileceğini unutmayın. ClassLoader.getResource, ResourceBundle ve Java sınıfları arasındaki eşleşmeyi anlamıyor. Bunları destekleyebilmeniz için, şununla eşleşen sınıfları bulmak için ResourceBundle'un yaptıklarına benzer bir algoritma uygulamanız gerekir. Yukarıdaki kodun içinde

İlgili konular