Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openj9
Path: blob/master/test/functional/cmdline_options_testresources/src/JavaRuntimeVersion.java
6004 views
1
/*******************************************************************************
2
* Copyright (c) 2001, 2020 IBM Corp. and others
3
*
4
* This program and the accompanying materials are made available under
5
* the terms of the Eclipse Public License 2.0 which accompanies this
6
* distribution and is available at https://www.eclipse.org/legal/epl-2.0/
7
* or the Apache License, Version 2.0 which accompanies this distribution and
8
* is available at https://www.apache.org/licenses/LICENSE-2.0.
9
*
10
* This Source Code may also be made available under the following
11
* Secondary Licenses when the conditions for such availability set
12
* forth in the Eclipse Public License, v. 2.0 are satisfied: GNU
13
* General Public License, version 2 with the GNU Classpath
14
* Exception [1] and GNU General Public License, version 2 with the
15
* OpenJDK Assembly Exception [2].
16
*
17
* [1] https://www.gnu.org/software/classpath/license.html
18
* [2] http://openjdk.java.net/legal/assembly-exception.html
19
*
20
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
21
*******************************************************************************/
22
23
public class JavaRuntimeVersion {
24
25
/**
26
* example java.runtime.version's:
27
* 1.8.0_272-b10
28
* 8.0.7.0 - pxa6480sr7-20200922_01(SR7)
29
* 11.0.10-internal
30
* 11.0.10+5
31
* obsolete: pxa6460sr11-20120403_01 (SR11)
32
*/
33
public static void main(String[] args) {
34
String runTimeVersion = System.getProperty("java.runtime.version");
35
36
System.out.println("java.runtime.version is:" + runTimeVersion);
37
38
String[] properties = runTimeVersion.split("\\s|-");
39
String[] versionParts = properties[0].split("\\+");
40
if (versionParts.length > 2) {
41
throw new IllegalArgumentException ("invalid version: " + properties[0]);
42
}
43
String intialVersion = versionParts[0];
44
if (intialVersion.startsWith("1.8") || intialVersion.startsWith("8.")) {
45
// Java 8 can have an underscore
46
if (!intialVersion.matches("[1-9][0-9\\.]+") && !intialVersion.matches("[1-9][0-9\\.]+_[1-9][0-9]*")) {
47
throw new IllegalArgumentException ("invalid version: " + intialVersion);
48
}
49
} else {
50
if (!intialVersion.matches("[1-9][0-9\\.]+")) {
51
throw new IllegalArgumentException ("invalid version: " + intialVersion);
52
}
53
}
54
55
if ((versionParts.length > 1) && !versionParts[1].matches("[1-9][0-9]*")) {
56
throw new IllegalArgumentException ("invalid build: " + versionParts[1]);
57
}
58
59
System.out.println("Version: " + properties[0]);
60
for (int i = 1; i < properties.length; i++) {
61
System.out.println("optional: " + properties[i]);
62
}
63
64
System.out.println("JavaRuntimeVersion Test OK");
65
}
66
67
}
68
69