hiện tại Tôi có một số mã Java khởi chạy một quy trình Java mới, sử dụng hiệu quả hệ thống JRE mặc định (trong trường hợp của tôi là JDK 8). Thay vào đó, tôi cần nó để chạy với phiên bản đang chạy quá trình gốc (ví dụ: JDK 9).Bắt đầu quá trình Java với cùng một tệp thực thi như
Tôi có thể làm như thế nào? (Các giải pháp cần phải làm việc trên cả hai Java 8 và 9.)
Chi tiết
Mã này hiện dựa trên JRE hệ thống mặc định bằng cách đơn giản ban hành một lệnh java ...
. Một thay thế sẽ là sử dụng một cái gì đó giống như System.getProperty("java.home") + "/bin/java"
(nhưng nền tảng độc lập), nhưng cả hai đều có cùng một vấn đề (đối với tôi): Chúng khởi chạy một quá trình Java với phiên bản JVM được biết đến với hệ thống.
CẬP NHẬT: Hoàn toàn sai, System.getProperty("java.home")
thực sự làm những gì tôi muốn và trả về thư mục chính của JVM hiện tại. (Stupid tôi, tôi nghĩ rằng tôi đã thử điều đó.)
Một cách để khởi chạy với cùng một phiên bản Java, sẽ hỏi quá trình hiện tại cho nó thực thi và tái sử dụng, nhưng tôi không tìm thấy API cho điều đó.
'System.getProperty (" java.home ")' cung cấp cho bạn JRE hiện tại, không phải là JRE mặc định –
@IngoKegel Bạn hoàn toàn đúng, tôi không biết làm thế nào mà thoát được tôi ... Cảm ơn! – Nicolai