Bagi Anda yang bermigrasi dari Eclipse ke IntelliJ atau sebaliknya berikut adalah tip saat bekerja dengan file properti atau file resource lainnya.
Ini menjengkelkan (menghabiskan waktu sepanjang malam untuk mengetahuinya) tetapi kedua pekerjaan IDE sangat berbeda ketika harus mencari file resource / propertty ketika Anda ingin menjalankan secara lokal dari IDE Anda atau selama debugging. (Pengemasan ke .jar juga sangat berbeda, tetapi itu didokumentasikan dengan lebih baik.)
Misalkan Anda memiliki rujukan jalur relatif seperti ini di kode Anda:
new FileInputStream("xxxx.properties");
(yang nyaman jika Anda bekerja dengan file .properties spesifik env yang tidak ingin Anda paketkan bersama JAR Anda)
INTELLIJ
(Saya menggunakan 13.1, tetapi mungkin valid untuk lebih banyak versi)
File xxxx.properties harus berada di direktori PARENT dari ROOT proyek agar dapat diambil saat runtime seperti ini di IntelliJ. (ROOT proyek adalah tempat folder / src berada)
GERHANA
Eclipse senang ketika file xxxx.properties berada di ROOT proyek itu sendiri.
Jadi IntelliJ mengharapkan file .properties menjadi 1 level lebih tinggi dari Eclipse ketika direferensikan seperti ini !!
Ini juga memengaruhi cara Anda harus mengeksekusi kode ketika Anda memiliki baris kode yang sama ini (FileInputStream baru ("xxxx.properties");) di .jar yang diekspor. Jika Anda ingin lincah dan tidak ingin mengemas file .properties dengan jar Anda, Anda harus menjalankan jar seperti di bawah ini untuk mereferensikan file .properties dengan benar dari baris perintah:
JAR EKSPOR INTELLIJ
java -cp "/path/to_properties_file/:/path/to_jar/some.jar" com.bla.blabla.ClassContainingMainMethod
ECLIPSE EKSPOR JAR
java -jar some.jar
di mana Eclipse mengekspor jar yang dapat dieksekusi hanya akan mengharapkan file .properties yang direferensikan berada di lokasi yang sama dengan tempat file .jar berada