Di Java, mengakses sumber yang dibungkus dalam fail JAR boleh mencabar. Walaupun penstriman kandungan sumber adalah mudah, mendapatkan laluan fail yang boleh diakses mungkin sukar difahami.
Satu pendekatan cuba mencipta objek Fail menggunakan kaedah getResource:
ClassLoader classLoader = getClass().getClassLoader(); File file = new File(classLoader.getResource("config/netclient.p").getFile());
Walau bagaimanapun, ini selalunya gagal dengan a FileNotFoundException, kerana sumber mungkin tidak mempunyai fail yang sepadan pada fail sistem.
Memahami Konsep Sumber
Fail JAR menggabungkan sumber dalam arkib, yang mungkin tidak boleh diakses secara langsung sebagai fail fizikal. Pemuat kelas mengendalikan pemuatan sumber dan boleh menyediakan akses melalui strim.
Alternatif: Penstriman Kandungan Sumber
Untuk mengakses kandungan sumber tanpa laluan fail, gunakan:
ClassLoader classLoader = getClass().getClassLoader(); PrintInputStream(classLoader.getResourceAsStream("config/netclient.p"));
Pilihan Fail Sementara
Jika Objek fail amat diperlukan, pertimbangkan untuk menyalin strim ke dalam fail sementara:
InputStream resourceStream = classLoader.getResourceAsStream("config/netclient.p"); File tempFile = File.createTempFile("resource", ".tmp"); try (OutputStream outputStream = new FileOutputStream(tempFile)) { resourceStream.transferTo(outputStream); }
Setelah disalin, anda boleh memanipulasi fail sementara mengikut keperluan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Laluan Sumber Di Dalam Fail JAR Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!