Có thể khởi tạo thuộc tính hệ thống Java bằng cách sử dụng một số loại tệp cấu hình nào đó không? Đặt thuộc tính hệ thống Java bằng tệp cấu hình
(ví dụ: bạn có thể đặt java.library.path sử dụng một tập tin bên trong jar của bạn)
EDIT: Làm rõ: Tôi yêu cầu cụ thể về khởi các thuộc tính hệ thống để một giá trị trong một tệp, không đặt chúng sau này từ bên trong máy ảo. Có, bạn có thể thay đổi thuộc tính hệ thống thành bất kỳ thứ gì bạn muốn rất dễ dàng sau khi máy khởi động, nhưng các lớp hệ thống Java sẽ không sử dụng các giá trị mới.
Thực tế, điều này có nghĩa là System.setProperty và System.setProperties vô dụng khi tải thư viện gốc, vì JNI sẽ luôn sử dụng giá trị gốc của java.library.path để tải thư viện. Tôi đang cố gắng tìm ra nếu có một thay thế sạch hơn chỉ cần đặt -Djava.library.path = bất cứ điều gì trong bắt đầu lên kịch bản ở khắp mọi nơi.
Bạn cần triển khai mẫu quan sát.Khi thay đổi tệp thuộc tính, bạn có thể có nút trên màn hình quản trị để hệ thống đọc giá trị mới hoặc tiếp tục kiểm tra thay đổi ngày trên tệp thuộc tính. – Shahzeb
Chắc chắn có thể tải các thư viện gốc từ bất kỳ nơi nào bạn muốn cho các lớp của riêng bạn: OSGi đưa ra một phương thức để thực hiện điều đó cho các gói thông qua tiêu đề tệp kê khai Bundle-NativeCode. –