Bu uygulama için bir uygulama ve yapılandırma dosyaları içeren bir JAR dosyasına sahibim. Uygulama, sınıflandırma dosyasından (ClassLoader.getResource()
kullanarak) yapılandırma dosyalarını yükler ve bağımlılıklarını JAR dosyasına yapılan yapılandırma dosyalarını kullanarak tamamen memnun eder.Çalışmakta olan bir kavanozdaki bir dosyayı geçersiz kılmak için sınıfyolunu kullanabilir miyim?
Bazen, uygulamanın biraz farklı bir yapılandırma ile çalıştırılmasını istiyorum (özellikle farklı bir veritabanına işaret etmek için JDBC URL'sini geçersiz kılmak istiyorum), bu yüzden yeni bir yapılandırma dosyası oluşturuyorum, onu doğru dizin yapısında saklayın (hangi bir dizin bir sınıf yolu girişinin /config
) anlamına gelir ve böyle bir şey yapmak istiyorum:
java -cp new-config:. -jar application.jar
Ama sınıf yolu uygulama kavanoz içeriğini önce new-config
yol girişini olması alınamıyor. JAR'ın içeriğinin her zaman sınıf yolundaki ilk şey olduğu kodlanmış mı?
sen application.jar ilgili bir yol içinde kendi kavanoz dosyasında, de kavanoz dışında yapılandırma koyarak denediniz Dosya (../conf/config.jar)? Bunu yaparsanız, uygulama bildiriminde bu yapılandırma kavanozuna işaret eden sınıf yolunu ayarlayabilir ve config.jar değiştirerek yeni yapılandırmayı ayarlayabilirsiniz. Keşke cevabımı onaylamak için bir demo yapmak için daha fazla zamanım olsaydı, ama yapamam ... bu yüzden onu bir yorum olarak yazdım – JuanZe
Yani, JAR'ın içinde mi demek istiyorsun? – Guss
Evet, uygulama ile aynı kavanoza yerleştirmek yerine, ikinci bir kavanoz içinde yapılandırmayı koyuyorum ... – JuanZe