Mengakses Sumber dalam Fail JAR menggunakan Java
Apabila bekerja dengan fail JAR, mungkin perlu mendapatkan semula laluan ke sumber terbenam. Walau bagaimanapun, percubaan untuk mendapatkan laluan menggunakan teknik seperti:
ClassLoader classLoader = getClass().getClassLoader(); File file = new File(classLoader.getResource("config/netclient.p").getFile());
mungkin menghasilkan ralat yang menunjukkan bahawa fail yang ditentukan tidak dapat ditemui. Tingkah laku ini wujud dalam struktur fail JAR Java.
Sebab keputusan ini ialah sumber yang terkandung dalam JAR tidak semestinya tersedia sebagai fail individu pada sistem fail. Ia mungkin dimampatkan atau disimpan dalam arkib dengan cara yang menjadikan akses terus kepada sistem fail mustahil.
Selain itu, bergantung pada java.io.Fail untuk akses sumber mungkin bukan pendekatan yang paling cekap atau mudah alih . Sebaliknya, pertimbangkan pilihan berikut:
classLoader.getResource("config/netclient.p")
Pendekatan ini menyediakan akses kepada aliran sumber tetapi tidak menyediakan fail laluan.
InputStream in = classLoader.getResourceAsStream("config/netclient.p"); FileOutputStream out = new FileOutputStream(new File("tmp/" + fileName));
Ini membolehkan anda mencipta versi fail sumber dalam direktori sementara yang ditetapkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Sumber Terbenam dalam Fail JAR di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!