Rumah >Java >javaTutorial >Bagaimanakah saya Boleh Muat Semula atau Tambah Fail JAR pada Aplikasi Java yang Berjalan?

Bagaimanakah saya Boleh Muat Semula atau Tambah Fail JAR pada Aplikasi Java yang Berjalan?

Barbara Streisand
Barbara Streisandasal
2024-12-06 04:10:09926semak imbas

How Can I Reload or Add JAR Files to a Running Java Application?

Memuat Semula dan Memuatkan Fail JAR pada Masa Jalan

Untuk membolehkan sistem Java anda memuatkan dan memuat semula kelas semasa berjalan, pertimbangkan perkara berikut:

Memuat Semula Sedia Ada Kelas

Percubaan untuk memuat semula kelas sedia ada dengan datanya secara amnya tidak digalakkan kerana ia boleh mengakibatkan ketidakstabilan sistem.

Menambah Kelas Baharu

Memuatkan kelas baharu ke dalam pemuat kelas berasingan adalah berdaya maju pilihan:

ClassLoader loader = URLClassLoader.newInstance(new URL[] { yourURL }, getClass().getClassLoader());
Class<?> clazz = Class.forName("mypackage.MyClass", true, loader);
Class<? extends Runnable> runClass = clazz.asSubclass(Runnable.class);
Constructor<? extends Runnable> ctor = runClass.getConstructor();
Runnable doRun = ctor.newInstance();

Pengumpulan Sampah Pemuat Kelas

Pemuat kelas yang tidak lagi digunakan boleh dituntut semula oleh pemungut sampah, dengan andaian tiada kebocoran memori ( yang mungkin berlaku dengan ThreadLocal, pemacu JDBC, dsb.).

Kegigihan Data

Untuk mengekalkan data objek merentas muat semula kelas, pertimbangkan mekanisme kegigihan seperti siri.

Helah Nyahpepijat Fancy

Walaupun sistem penyahpepijatan menyediakan keupayaan lanjutan, mereka selalunya kurang dipercayai dan lebih sukar untuk nyahpepijat.

Menambah Kelas pada Pemuat Kelas Sedia Ada

Walaupun URLClassLoader membenarkan penambahan URL baharu, jika kelas gagal dimuatkan pada mulanya, ia tidak akan dimuatkan dalam contoh pemuat kelas itu.

Atas ialah kandungan terperinci Bagaimanakah saya Boleh Muat Semula atau Tambah Fail JAR pada Aplikasi Java yang Berjalan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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