Apabila memuatkan sumber, jika aplikasi dijalankan daripada IDE, laluan ke sumber mungkin berbeza daripada apabila dijalankan daripada fail balang. Ini boleh menyebabkan masalah jika aplikasi bergantung pada laluan fail tertentu.
Salah satu cara untuk menyelesaikan masalah ini ialah menggunakan getResourceAsStream dan bukannya getResource. getResourceAsStream mengembalikan InputStream, yang boleh digunakan untuk membaca data sumber tanpa perlu berurusan dengan laluan fail.
Pilihan lain ialah mengekstrak sumber ke fail sementara sebelum menggunakannya. Ini boleh dilakukan menggunakan kaedah Files.copy.
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa sesetengah kod mungkin bergantung pada data yang berada dalam satu fail fizikal dalam sistem fail. Dalam kes ini, menggabungkan sumber dalam fail jar mungkin bukan pilihan.
Contoh Kod:
InputStream inputStream = WinProcessor.class.getResourceAsStream("repository"); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = reader.readLine()) != null) { // Do something with the line } reader.close();
Atas ialah kandungan terperinci Bagaimana untuk Memuatkan Sumber dengan Betul dari Fail Jar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!