Sumber Classpath Tidak Ditemui Apabila Dijalankan sebagai Fail Jar
Apabila memuatkan sumber classpath menggunakan anotasi @Value, adalah penting untuk mempertimbangkan fail lokasi. Jika sumber dibenamkan dalam fail JAR, menggunakan resource.getFile() untuk mendapatkan semula kandungannya mungkin menyebabkan pengecualian, kerana getFile() menjangkakan sumber itu tersedia pada sistem fail.
Untuk mendapatkan semula sumber itu kandungan daripada fail JAR, sebaliknya gunakan resource.getInputStream(). Ini membolehkan anda membaca kandungan sumber tanpa mengira lokasinya.
Berikut ialah contoh cara mengubah suai aplikasi anda untuk menggunakan getInputStream():
<code class="java">private void testResource(Resource resource) { try { InputStream inputStream = resource.getInputStream(); printFileContents(inputStream); } catch (IOException ex) { logger.error(ex.toString()); } } private void printFileContents(InputStream inputStream) { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); bufferedReader.lines().forEach(logger::debug); }</code>
Atas ialah kandungan terperinci Mengapakah Sumber Classpath Tidak Ditemui apabila Dijalankan sebagai Fail Jar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!