2011-08-31 18 views
15

Aynı sorunu hedefleyen başka soruların olduğunu biliyorum, ancak çözümlerin benim için çalışmadığı. Sahip olduğum ve kaynak olarak paketlemek istediğim dosyaları okuyacağım ve diğer projelerden (Eclipse Helios kullanıyorum) tek bir sınıf yerine kavanoz gibi olmayı çok istediğim küçük bir araç var. BenKavanozda kaynakları uygun şekilde nasıl paketlenir

String path = MyClass.class.getClassLoader().getResource("resources/" + name + ".SOURCE").getPath(); 
System.out.println(path); 
File file = new File(MyClass.class.getClassLoader().getResource("resources/" + name + ".SOURCE").toURI()); 
defaultSource = readSOURCEFile(file); 

aracılığıyla benim kaynaklara erişebilir Eclipse içinde bir uygulama olarak

eğer ve benim src klasörüne yerleştirin DEĞİL eğer çıkış yolu (derlenmiş kaynakları) altında kaynakları klasörü yerleştirmek yalnızca.

Projeyi paketlediğimde, kök klasördeki veya sınıflar klasöründeki kaynaklar hiç paketlenmez. Kaynaklarımda src klasörüm varsa, src/resources altinda paketlenir.

Export - Runnable Jar'ı kullanıyorum, ne yapıyorum? Export - Jar ile denediğimde, kaynaklarımı ve kaynaklarını düzgün bir şekilde paketleyebilirim ancak ana sınıfı ayarlamayla ilgili sorunlarım var ve jar'ı çalıştıramam. Manifest doğru ve sınıf var :-(.

İkinci sorun: Paketlenmiş kavanozda hatayı alıyorum: URI hiyerarşik değil (kavanozu elimdeki kaynakları elimden taşıdıktan sonra jar'i çalıştırabilirim)

peşin

teşekkürler! Ben çalışma alanına kaynakları bağladığınız

bir sorun bu mu?

cevap

14

Mark Eclipse bir "Kaynak klasör" olarak projenizin kök klasörü altında resource klasör (sağ tıklayıp klasörü, "Yol Oluştur"> "Kaynak klasör olarak kullan" a gidin. Ardından şu kaynakları okuyun:

InputStream is = MyClass.class.getClassLoader().getResourceAsStream(name + ".SOURCE"); 
BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
String line = reader.readLine(); 
+0

Bunu yaparsam, kaynaklar doğrudan kök klasörünün altındaki klasör kaynakları olmadan paketlenir. – UMY

+0

Haklısınız. Kaynak kaynaklarını kaynak yolundan kaldırmak için kodu değiştirdim. Kavanozunuzda "kaynaklar" adlı bir dizini istiyorsanız, bu klasör hiyerarşisini oluşturun: "/resources/resources" ve yukarıda belirtildiği gibi kaynak yolunu tutmak için '/sources' ekleyin. Ayrıca koddaki kaynak yolunda 'kaynakları 'ekleyin. –

+0

Bu çok basit bir şey, ama SO ve sizin inanılmaz cevabınız olmadan, saatlerce uğraşırdım ... *** Teşekkür ederim !!!! *** –

İlgili konular