Memuatkan Sumber daripada JAR
Apabila mengakses sumber yang dibenamkan dalam arkib JAR, pembangun biasanya menghadapi percanggahan antara laluan sumber yang diperoleh semasa IDE pelaksanaan dan semasa menjalankan aplikasi melalui JAR. Dalam konteks IDE, sumber diakses terus daripada sistem fail, manakala dalam persekitaran JAR, laluan menjadi sangat teruk dihiasi dengan awalan arkib (cth., "jar:/root/app.jar!/").
Untuk menyelesaikan isu ini dan mengekalkan mekanisme capaian sumber yang konsisten, patuhi nasihat berikut:
Gunakan getResourceAsStream
Elak godaan untuk memuatkan sumber menggunakan FileInputStream atau pendekatan yang serupa . Sebaliknya, manfaatkan kaedah getResourceAsStream() untuk mendapatkan semula sumber sebagai aliran input, dari mana data boleh dibaca dengan mudah.
Elakkan Akses Sistem Fail Terus
Jika anda kod bergantung pada mengakses sumber sebagai fail tunggal yang disimpan dalam sistem fail, elakkan daripada membungkus sumber tersebut dalam fail JAR. Pertimbangkan susunan alternatif, seperti mengekalkannya sebagai fail yang berasingan.
Pertimbangkan Pengekstrakan Fail Sementara
Sebagai langkah terakhir, anda mungkin meneroka penyelesaian hacky yang melibatkan langkah berikut :
Walaupun pendekatan ini mungkin berfungsi, sifatnya yang serampangan mencadangkan ia harus digunakan dengan berhati-hati.
Atas ialah kandungan terperinci Bagaimana untuk mengakses sumber terbenam dalam JAR secara konsisten?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!