OSDN Git Service

スカパー変更対応ほか
[tainavi/TinyBannavi.git] / TinyBannavi / src / tainavi / VersionInfo.java
1 package tainavi;\r
2 \r
3 import java.util.regex.Matcher;\r
4 import java.util.regex.Pattern;\r
5 \r
6 \r
7 public class VersionInfo {\r
8         private static final String Version = "タイニー番組ナビゲータ 3.22.4β";\r
9         \r
10         private static final String OSname = System.getProperty("os.name");\r
11         private static final String OSvers = System.getProperty("os.version");\r
12         //private static final String OSarch = System.getProperty("sun.arch.data.model", "?");\r
13         private static final String VMvers = System.getProperty("java.version");\r
14         // XXX なんと!System.getProperty("os.arch")ではOS.archでなくJRE.archが返る!\r
15         private static final String VMarch = System.getProperty("os.arch");\r
16         private static final String VMvend = System.getProperty("java.vendor");\r
17         \r
18         \r
19         public static String getVersion() {\r
20                 return(Version);\r
21         }\r
22 \r
23         public static String getEnvironment() {\r
24                 String osarch = "";\r
25                 if ( CommonUtils.isWindows() ) {\r
26                         osarch = (System.getenv("ProgramFiles(x86)") != null) ? "x64" : "x86";\r
27                 }\r
28                 else {\r
29                         CommonUtils.executeCommand("arch");\r
30                         String oa = CommonUtils.getCommandResult();\r
31                         if ( oa != null ) {\r
32                                 osarch = Pattern.compile("[\r\n]+$",Pattern.DOTALL).matcher(oa).replaceFirst("");\r
33                         }\r
34                 }\r
35                 return(String.format("%s %s (%s) & Java %s (%s) [%s]",OSname,OSvers,osarch,VMvers,VMarch,VMvend));\r
36         }\r
37 \r
38         public static String getVersionNumber() {\r
39                 \r
40                 Matcher ma = Pattern.compile("([0-9]+)\\.([0-9]+)(\\.([0-9]+))?(.)?").matcher(Version);\r
41                 if (ma.find()) {\r
42                         if (ma.group(4) == null) {\r
43                                 return String.format("%03d_%03d", Integer.valueOf(ma.group(1)), Integer.valueOf(ma.group(2)));\r
44                         }\r
45                         else {\r
46                                 String ab = "b";\r
47                                 if (ma.group(5) != null && ma.group(5).equals("α")) {\r
48                                         ab = "a";\r
49                                 }\r
50                                 return String.format("%03d_%03d_%03d%s", Integer.valueOf(ma.group(1)), Integer.valueOf(ma.group(2)), Integer.valueOf(ma.group(4)),ab);\r
51                         }\r
52                 }\r
53                 \r
54                 return null;\r
55         }\r
56 }\r