Rumah  >  Artikel  >  Java  >  Kaedah untuk menyelesaikan pengecualian sumber Java yang hilang (ResourceNotFoundException)

Kaedah untuk menyelesaikan pengecualian sumber Java yang hilang (ResourceNotFoundException)

WBOY
WBOYasal
2023-08-25 20:07:522950semak imbas

Kaedah untuk menyelesaikan pengecualian sumber Java yang hilang (ResourceNotFoundException)

Kaedah untuk menyelesaikan pengecualian sumber Java yang hilang (ResourceNotFoundException)

Dalam proses menggunakan pembangunan Java, kita mungkin menghadapi pengecualian "ResourceNotFoundException". Pengecualian ini biasanya disebabkan oleh program tidak dapat mencari fail sumber yang diperlukan. Fail sumber boleh menjadi fail konfigurasi, gambar, fail audio, dsb.

Pengecualian sumber yang hilang mungkin berlaku disebabkan oleh sebab berikut:

  1. Laluan fail sumber yang salah: Apabila program mencari fail sumber, ia akan mencari fail sumber berdasarkan laluan yang diberikan. Jika laluan salah atau fail sumber tidak wujud, pengecualian sumber yang hilang akan dibuang.
  2. Masalah pengoptimuman kompilasi: Semasa proses penyusunan Java, pengkompil mungkin mengoptimumkan beberapa fail sumber, menyebabkan beberapa fail sumber tidak dimuatkan dengan betul selepas penyusunan, menyebabkan sumber kehilangan pengecualian.

Untuk menyelesaikan masalah ini, kita boleh mengambil kaedah berikut:

Kaedah 1: Semak laluan fail sumber

Dalam program, semak sama ada laluan fail sumber yang anda gunakan adalah betul. Anda boleh mencetak laluan fail sumber terlebih dahulu untuk memastikan laluan itu betul.

Sebagai contoh, jika fail sumber anda terletak dalam folder konfigurasi di bawah src/main/resources, maka anda boleh mendapatkan laluan fail sumber seperti ini:

String filePath = getClass().getClassLoader().getResource("config/myfile.txt").getFile();

Kod di atas akan mengembalikan laluan mutlak, anda boleh mengesahkan ia dengan mencetak filePath Adakah laluannya betul?

Kaedah 2: Gunakan kaedah pemuatan sumber yang betul

Apabila menggunakan Java untuk memuatkan fail sumber, biasanya terdapat kaedah berikut:

  1. Gunakan ClassLoader untuk memuatkan fail sumber:
ClassLoader classLoader = getClass().getClassLoader();
InputStream inputStream = classLoader.getResourceAsStream("config/myfile.txt");
  1. Gunakan fail laluan relatif untuk memuatkan fail sumber :
InputStream inputStream = getClass().getResourceAsStream("/config/myfile.txt");

Menggunakan salah satu kaedah ini, fail sumber boleh dimuatkan dengan jayanya jika laluan fail sumber adalah betul.

Kaedah 3: Pastikan fail sumber disalin dengan betul ke laluan sasaran semasa penyusunan

Dalam sesetengah kes, fail sumber yang kami gunakan terletak dalam direktori kod sumber, dan fail sumber ini perlu disalin ke direktori kompilasi semasa kompilasi dalam direktori output. Jika konfigurasi kompilasi tidak betul, fail sumber mungkin tidak disalin dengan betul, menyebabkan sumber kehilangan pengecualian.

Untuk mengkonfigurasi proses kompilasi dengan betul, kami boleh menggunakan alat binaan seperti Maven untuk menyalin fail sumber secara automatik ke direktori output kompilasi. Dalam fail konfigurasi pom.xml Maven, tambahkan konfigurasi berikut:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.xml</include>
                <include>**/*.properties</include>
                <!-- 添加其他需要复制的资源文件 -->
            </includes>
        </resource>
    </resources>
</build>

Konfigurasi di atas akan menyalin semua fail xml dan sifat dalam direktori src/main/resources ke direktori output kompilasi.

Ringkasan:

Pengecualian tiada sumber Java (ResourceNotFoundException) biasanya disebabkan oleh program tidak dapat mencari fail sumber yang diperlukan. Masalah ini boleh diselesaikan dengan menyemak laluan fail sumber, menggunakan kaedah pemuatan sumber yang betul dan memastikan fail sumber disalin dengan betul ke laluan sasaran semasa penyusunan. Kaedah di atas boleh membantu kami menyelesaikan pengecualian sumber Java yang hilang dengan berkesan.

Atas ialah kandungan terperinci Kaedah untuk menyelesaikan pengecualian sumber Java yang hilang (ResourceNotFoundException). 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