Eclipse'den IntelliJ'e geçiş yapanlarınız için ya da tam tersi, özellik dosyaları ya da diğer kaynak dosyalarıyla çalışırken bir ipucu.
Çıldırtıcı (öğrenmek için bütün bir geceme mal oldu) ancak IDE'nizden yerel olarak çalıştırmak istediğinizde veya hata ayıklama sırasında kaynak / uygun dosyalar ararken her iki IDE de oldukça farklı çalışıyor. (Bir .jar'a paketleme de oldukça farklıdır, ancak bu daha iyi belgelenmiştir.)
Kodunuzda buna benzer bir göreceli yol yönlendirmeniz olduğunu varsayalım:
new FileInputStream("xxxx.properties");
(JAR'ınızla birlikte paketlemek istemediğiniz env'e özgü .properties dosyalarıyla çalışıyorsanız bu uygundur)
IntelliJ
(13.1 kullanıyorum, ancak daha fazla sürüm için geçerli olabilir)
Xxxx.properties dosyasının IntelliJ'de olduğu gibi çalışma zamanında alınabilmesi için ROOT projesinin PARENT dizininde olması gerekir. (ROOT projesi, / src klasörünün bulunduğu yerdir)
ECLIPSE
Eclipse, xxxx.properties dosyası ROOT projesinin kendisinde olduğunda mutludur.
Dolayısıyla IntelliJ, bu şekilde başvurulduğunda .properties dosyasının Eclipse'den 1 düzey daha yüksek olmasını bekler !!
Bu aynı zamanda, dışa aktardığınız .jar'da aynı kod satırına (yeni FileInputStream ("xxxx.properties");) sahip olduğunuzda kodunuzu yürütme şeklinizi de etkiler. Çevik olmak istediğinizde ve .properties dosyasını jar'ınızla paketlemek istemediğinizde, .properties dosyasına komut satırından doğru şekilde başvurmak için jar'ı aşağıdaki gibi çalıştırmanız gerekir:
INTELLIJ İHRACAT KAVANOZ
java -cp "/path/to_properties_file/:/path/to_jar/some.jar" com.bla.blabla.ClassContainingMainMethod
ECLIPSE İHRACAT KAVANOZ
java -jar some.jar
Eclipse dışa aktarılan yürütülebilir jar, referans verilen .properties dosyasının .jar dosyasının bulunduğu konumla aynı konumda olmasını bekleyecektir.