OSDN Git Service

・ ver0.996リリース
[charactermanaj/CharacterManaJ.git] / src / charactermanaj / util / JavaVersionUtils.java
1 package charactermanaj.util;\r
2 \r
3 \r
4 public final class JavaVersionUtils {\r
5 \r
6         private JavaVersionUtils() {\r
7                 super();\r
8         }\r
9 \r
10         /**\r
11          * Javaの簡易なバージョンを取得する.<br>\r
12          * 不明な場合は0を返す.<br>\r
13          * \r
14          * @return バージョン\r
15          */\r
16         public static double getJavaVersion() {\r
17                 try {\r
18                         String version = System.getProperty("java.version");\r
19                         String[] versions = version.split("\\.");\r
20                         if (versions.length > 2) {\r
21                                 return Double.valueOf(versions[0] + "." + versions[1]);\r
22                         }\r
23                 } catch (RuntimeException ex) {\r
24                         ex.printStackTrace();\r
25                 }\r
26                 return 0d;\r
27         }\r
28 \r
29         /**\r
30          * Javaの詳細なバージョンを取得する. メジャー・マイナー・メンテナンス・アップデートの4要素を返す.<br>\r
31          * \r
32          * @return\r
33          */\r
34         public static int[] getJavaVersions() {\r
35                 return getJavaVersions(System.getProperty("java.version"));\r
36         }\r
37 \r
38         private static int[] getJavaVersions(String version) {\r
39                 int[] ret = new int[4];\r
40                 try {\r
41                         int posIdentifier = version.indexOf('-');\r
42                         if (posIdentifier >= 0) {\r
43                                 version = version.substring(0, posIdentifier);\r
44                         }\r
45 \r
46                         int posUpdate = version.indexOf("_");\r
47                         int update = 0;\r
48                         if (posUpdate >= 0) {\r
49                                 update = Integer.parseInt(version.substring(posUpdate + 1));\r
50                                 version = version.substring(0, posUpdate);\r
51                         }\r
52 \r
53                         String[] versions = version.split("\\.");\r
54 \r
55                         for (int idx = 0; idx < 3 && idx < versions.length; idx++) {\r
56                                 ret[idx] = Integer.parseInt(versions[idx]);\r
57                         }\r
58                         ret[3] = update;\r
59 \r
60                 } catch (RuntimeException ex) {\r
61                         ex.printStackTrace();\r
62                 }\r
63                 return ret;\r
64         }\r
65 }\r