beberapa catatan. Properti sistem dimaksudkan untuk itu tetapi perlu diingat bahwa ini adalah operasi dengan hak istimewa dan kode kotak applet / webstart / pasir tidak akan dapat menjalankannya (mendapatkan SecurityException). Biasanya Anda ingin menjalankannya dengan cara yang samaAccessController.doPrivileged(new PrivilegedAction<String>(...));
bestsss
3
@bestsss Sementara beberapa sifat yang hanya tersedia untuk applet yang dipercaya: java.specification.version, java.version& java.vm.versionsemua tersedia untuk applet pasir-kotak, atau setidaknya mereka pada 1.6.0_23. Lihat jawaban saya untuk lebih jelasnya.
Panggilan JMX itu mengembalikan yang setara dengan "java.vm.version", bukan "java.version". Ini biasanya (tetapi tidak harus) sama.
Alex Miller
2
ManagementFactory.getRuntimeMXBean (). GetSpecVersion () mungkin lebih akurat.
bibi kuning
Kapan mereka berbeda, @AlexMiller? Kedengarannya menarik.
DavidS
1
Sebenarnya, menurutku mereka tidak sama. Java.vm.version adalah nomor versi jvm, seperti "25.0-b70" sedangkan java.version adalah versi bahasa java normal yang biasa Anda lihat "1.8.0".
Alex Miller
3
Perlu dicatat bahwa Java 9 akan mengubah nilai yang dikembalikan dari string ini.
AlBlue
54
Sepertinya yang java.specification.versionterbaik untuk pekerjaan itu.
@ User8461 Mungkin Anda harus melaporkan bug dengan siapa pun yang mengawasi JDK terbuka, Sejujurnya saya tidak melihat banyak gunanya mencari tahu nilai itu. Ini dia saat ini 25.45-b02.. yang tidak berarti apa-apa (tidak memberikan informasi berguna) bagi saya.
Andrew Thompson
53
Menggunakan:
System.getProperty("java.version");
Di mana java.versiondapat diganti dengan salah satu dari banyak properti sistem lain yang terkait dengan versi Java saat ini. Berikut adalah tabelnya:
Property Value (OpenJDK 12) Value (Oracle JRE 8u201) Value (Sun JRE 5u22) Description
------------------------------- ----------------------------------------- --------------------------------------- ---------------------------------------------------- ---------------------------------------------------------------------------------------------------------------
java.version "12" "1.8.0_201" "1.5.0_22" Java Runtime Environment version, which may be interpreted as a Runtime.Version
java.version.date "2019-03-19" null null Java Runtime Environment version date, in ISO-8601 YYYY-MM-DD format, which may be interpreted as a LocalDate
java.vendor "Oracle Corporation" "Oracle Corporation" "Sun Microsystems Inc." Java Runtime Environment vendor
java.vendor.version null null null Java vendor version
java.vendor.url "https://java.oracle.com/" "http://java.oracle.com/" "http://java.sun.com/" Java vendor URL
java.vendor.url.bug "https://bugreport.java.com/bugreport/" "http://bugreport.sun.com/bugreport/" "http://java.sun.com/cgi-bin/bugreport.cgi" Undocumented
java.specification.name "Java Platform API Specification" "Java Platform API Specification" "Java Platform API Specification" Java Runtime Environment specification name
java.specification.vendor "Oracle Corporation" "Oracle Corporation" "Sun Microsystems Inc." Java Runtime Environment specification vendor
java.specification.version "12" "1.8" "1.5" Java Runtime Environment specification version, whose value is the feature element of the runtime version
java.vm.name "OpenJDK 64-Bit Server VM" "Java HotSpot(TM) 64-Bit Server VM" "Java HotSpot(TM) 64-Bit Server VM" Java Virtual Machine implementation name
java.vm.vendor "Oracle Corporation" "Oracle Corporation" "Sun Microsystems Inc." Java Virtual Machine implementation vendor
java.vm.version "12+33" "25.201-b09" "1.5.0_22-b03" Java Virtual Machine implementation version which may be interpreted as a Runtime.Version
java.vm.info "mixed mode, sharing" "mixed mode" "mixed mode" Undocumented
java.vm.specification.name "Java Virtual Machine Specification" "Java Virtual Machine Specification" "Java Virtual Machine Specification" Java Virtual Machine specification name
java.vm.specification.vendor "Oracle Corporation" "Oracle Corporation" "Sun Microsystems Inc." Java Virtual Machine specification vendor
java.vm.specification.version "12" "1.8" "1.0" Java Virtual Machine specification version, whose value is the feature element of the runtime version
java.runtime.name "OpenJDK Runtime Environment" "Java(TM) SE Runtime Environment" "Java(TM) 2 Runtime Environment, Standard Edition" Undocumented
java.runtime.version "12+33" "1.8.0_201-b09" "1.5.0_22-b03" Undocumented
java.class.version "56.0" "52.0" "49.0" Java class format version number
jdk.debug "release" null null Undocumented
sun.java.launcher "SUN_STANDARD" "SUN_STANDARD" "SUN_STANDARD" Undocumented
sun.management.compiler "HotSpot 64-Bit Tiered Compilers" "HotSpot 64-Bit Tiered Compilers" "HotSpot 64-Bit Server Compiler" Undocumented
Sumber:
Keluaran java -XshowSettings:all -versionuntuk berbagai versi JVM.
Integer vers =Integer.parseInt(System.getProperty("java.version").split("\\.")[1]);String bitMode =System.getProperty("sun.arch.data.model").toString();System.out.println(vers);System.out.println(bitMode);
AccessController.doPrivileged(new PrivilegedAction<String>(...));
java.specification.version
,java.version
&java.vm.version
semua tersedia untuk applet pasir-kotak, atau setidaknya mereka pada1.6.0_23
. Lihat jawaban saya untuk lebih jelasnya.java -version
:)Jawaban:
System.getProperty("java.version")
mengembalikan apa yang Anda butuhkan.Anda juga dapat menggunakan JMX jika Anda ingin:
ManagementFactory.getRuntimeMXBean().getVmVersion()
sumber
Sepertinya yang
java.specification.version
terbaik untuk pekerjaan itu.MISALNYA
sumber
java.vm.version
adalah null di openjdk-11-headless25.45-b02
.. yang tidak berarti apa-apa (tidak memberikan informasi berguna) bagi saya.Menggunakan:
Di mana
java.version
dapat diganti dengan salah satu dari banyak properti sistem lain yang terkait dengan versi Java saat ini. Berikut adalah tabelnya:Sumber:
java -XshowSettings:all -version
untuk berbagai versi JVM.System.getProperties()
sumber
Hanya kasus menelepon
System.getProperty("java.version")
.sumber
Contoh penggunaan
java.version
,java.specification.version
danjava.runtime.version
: Mendapatkan versi java dalam runtime .sumber
Di bawah kode java mengembalikan
JVM
versi yang tersedia di IDE Anda saat inikeluaran:
sumber
Tergantung pada apa yang dibutuhkan, jawaban yang lain dapat membantu.
Dalam kasus saya, mereka tidak melakukannya. Saya sedang mencari informasi versi yang "memenuhi syarat" dari IBM JDK.
Jadi, jawaban "sebenarnya" bisa jadi: buang saja semua properti sistem dan periksa apakah ada yang memberi Anda apa yang Anda cari.
Dalam kasus saya; Saya menemukan bahwa IBM JDK mengetahui a
Properti: java.fullversion
sumber
Cukup panggil saja,
Contoh keluaran:
sumber
Informasi tentang versi disimpan sebagai properti
System
kelas.http://docs.oracle.com/javase/6/docs/api/java/lang/System.html#getProperties%28%29
sumber
System.getProperty ("sun.arch.data.model");
Kontrol Java 32 Bit dan 64 Bit
Keluaran:
sumber