Có lẽ điều này giúp ai đó, quá. Có vẻ là cách dễ dàng hơn để có được phiên bản JAVA được sử dụng để biên dịch/xây dựng .class.Bằng cách này rất hữu ích cho ứng dụng/lớp tự kiểm tra trên phiên bản JAVA.
Tôi đã trải qua thư viện JDK và tìm thấy hằng số hữu ích này: com.sun.deploy.config.BuiltInProperties.CURRENT_VERSION. Tôi không biết kể từ khi nó được trong JDK JAVA.
Cố đoạn mã này trong vài hằng số phiên bản tôi nhận được kết quả dưới đây:
src:
System.out.println("JAVA DEV ver.: " + com.sun.deploy.config.BuiltInProperties.CURRENT_VERSION);
System.out.println("JAVA RUN v. X.Y: " + System.getProperty("java.specification.version"));
System.out.println("JAVA RUN v. W.X.Y.Z: " + com.sun.deploy.config.Config.getJavaVersion()); //_javaVersionProperty
System.out.println("JAVA RUN full ver.: " + System.getProperty("java.runtime.version") + " (may return unknown)");
System.out.println("JAVA RUN type: " + com.sun.deploy.config.Config.getJavaRuntimeNameProperty());
đầu ra:
JAVA DEV ver.: 1.8.0_77
JAVA RUN v. X.Y: 1.8
JAVA RUN v. W.X.Y.Z: 1.8.0_91
JAVA RUN full ver.: 1.8.0_91-b14 (may return unknown)
JAVA RUN type: Java(TM) SE Runtime Environment
Trong lớp bytecode có thực sự là hằng số được lưu trữ - xem phần được đánh dấu màu đỏ của Main.call - constant stored in .class bytecode
liên tục là trong lớp học sử dụng để kiểm tra nếu JAVA phiên bản đã cũ (xem How Java checks that is out of date) ...
Nguồn
2016-05-16 14:31:26
, tiện ích trùng lặp http://stackoverflow.com/questions/1096148/how-to-check-the -jdk-phiên bản-được sử dụng-để-biên dịch-a-class-file đã trả lời một số công cụ tiện dụng không được đề cập ở đây. – Vadzim