Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Mengakses Sumber Terbenam dalam Fail JAR di Java?

Bagaimanakah Saya Boleh Mengakses Sumber Terbenam dalam Fail JAR di Java?

Patricia Arquette
Lepaskan: 2024-12-13 08:15:12
asal
152 orang telah melayarinya

How Can I Access Resources Embedded within a JAR File in Java?

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

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:

  • Menggunakan laluan sumber laluan kelas: Tentukan laluan ke sumber sebagai masukan laluan kelas, seperti:
classLoader.getResource("config/netclient.p")
Salin selepas log masuk

Pendekatan ini menyediakan akses kepada aliran sumber tetapi tidak menyediakan fail laluan.

  • Mengekstrak sumber buat sementara waktu: Jika laluan fail sangat penting, ekstrak sumber ke lokasi sementara menggunakan:
InputStream in = classLoader.getResourceAsStream("config/netclient.p");
FileOutputStream out = new FileOutputStream(new File("tmp/" + fileName));
Salin selepas log masuk

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!

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