Rumah > Java > javaTutorial > teks badan

Mengapakah Sumber Classpath Tidak Ditemui apabila Dijalankan sebagai Fail Jar?

Linda Hamilton
Lepaskan: 2024-11-04 12:52:29
asal
340 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan