Rumah  >  Artikel  >  Java  >  Mengapakah Sumber Classpath Tidak Ditemui apabila Dijalankan sebagai Fail Jar?

Mengapakah Sumber Classpath Tidak Ditemui apabila Dijalankan sebagai Fail Jar?

Linda Hamilton
Linda Hamiltonasal
2024-11-04 12:52:29309semak imbas

Why does Classpath Resource Not Found when Running as Jar File?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn