Liên quan đến: Is there a way to obtain the bytecode for a class at runtime?Java: Bắt Bytecode của Class tại Runtime từ bên trong JVM Cùng
tôi thêm độ bền để Clojure, và tôi cuối cùng tại điểm mà tôi đã sẵn sàng để thêm chức năng. Trong Clojure, các hàm được biên dịch thành các lớp với các phương thức gọi (trong số các hàm khác). Bằng cách này, các hàm là lớp đầu tiên. Để làm cho độ bền cao, tôi cần phải tuần tự hóa và deserialize các lớp này. Làm thế nào để có được bytecode cho lớp mà không có quyền truy cập vào tệp .class?
Vui lòng sửa tôi nếu tôi nhầm, nhưng sử dụng tác nhân yêu cầu sinh ra một máy ảo riêng biệt với tác nhân kết nối với máy ảo đầu tiên. Tôi cần phải làm điều đó từ cùng một máy ảo.
Không đủ để sử dụng Serializable để đặt và nhận đối tượng Lớp. Sau khi deserializing, tôi cần phải tải lớp, và sau khi trường hợp VM tiếp theo, có thể có một tên lớp va chạm. Tôi cần phải sửa đổi bytecode để đổi tên lớp thành một cái gì đó duy nhất tại thời gian deserialization/class-load.
Tôi không phải là chuyên gia về chủ đề này, nhưng có thể cố gắng duy trì chức năng * định nghĩa * chứ không phải là bytecode cơ bản. sau đó bạn có thể biên dịch lại các hàm thành bytecode khi bạn nạp chúng trở lại. – mikera