diff --git a/CasicTimeGuard.iml b/CasicTimeGuard.iml index 40532bb..b3a1877 100644 --- a/CasicTimeGuard.iml +++ b/CasicTimeGuard.iml @@ -11,7 +11,6 @@ - diff --git a/CasicTimeGuard.iml b/CasicTimeGuard.iml index 40532bb..b3a1877 100644 --- a/CasicTimeGuard.iml +++ b/CasicTimeGuard.iml @@ -11,7 +11,6 @@ - diff --git a/pom.xml b/pom.xml index 3be19b5..83b9dab 100644 --- a/pom.xml +++ b/pom.xml @@ -16,13 +16,6 @@ - org.projectlombok - lombok - 1.18.22 - true - - - com.alibaba fastjson 1.2.79 diff --git a/CasicTimeGuard.iml b/CasicTimeGuard.iml index 40532bb..b3a1877 100644 --- a/CasicTimeGuard.iml +++ b/CasicTimeGuard.iml @@ -11,7 +11,6 @@ - diff --git a/pom.xml b/pom.xml index 3be19b5..83b9dab 100644 --- a/pom.xml +++ b/pom.xml @@ -16,13 +16,6 @@ - org.projectlombok - lombok - 1.18.22 - true - - - com.alibaba fastjson 1.2.79 diff --git a/src/main/java/com/casic/swing/ui/TimeGuardNtp.java b/src/main/java/com/casic/swing/ui/TimeGuardNtp.java index c79bdba..c7e7a98 100644 --- a/src/main/java/com/casic/swing/ui/TimeGuardNtp.java +++ b/src/main/java/com/casic/swing/ui/TimeGuardNtp.java @@ -50,7 +50,7 @@ stateView.setText("未同步"); setStateView(Color.GRAY); - StringHelper.createLogFile(); + ConfigHelper.saveConfig(); //检查环境 new SwingWorker() { @@ -71,7 +71,7 @@ } }.execute(); - serverConfig = StringHelper.getConfigData(); + serverConfig = ConfigHelper.getConfigData(); /** * 时间间隔,单位为毫秒 * */ @@ -81,7 +81,7 @@ currentTimeLabel.setText(systemTime); }).start(); - String ntpTime = StringHelper.getNtpUpdateTime(); + String ntpTime = LogToFile.load(); if (!"".equals(ntpTime)) { recentlyTimeLabel.setText(ntpTime); } else { @@ -141,7 +141,7 @@ // String result = "5 Jan 11:20:24 ntpdate[807910]: adjust time server 114.118.7.161 offset -0.004064 sec"; // String result = "5 Jan 11:24:06 ntpdate[824403]: no server suitable for synchronization found"; String result = CommandUtil.ntpDate(host); - StringHelper.saveLog(result); + LogToFile.save(result); if ("".equals(result)) { setStateView(Color.RED); diff --git a/CasicTimeGuard.iml b/CasicTimeGuard.iml index 40532bb..b3a1877 100644 --- a/CasicTimeGuard.iml +++ b/CasicTimeGuard.iml @@ -11,7 +11,6 @@ - diff --git a/pom.xml b/pom.xml index 3be19b5..83b9dab 100644 --- a/pom.xml +++ b/pom.xml @@ -16,13 +16,6 @@ - org.projectlombok - lombok - 1.18.22 - true - - - com.alibaba fastjson 1.2.79 diff --git a/src/main/java/com/casic/swing/ui/TimeGuardNtp.java b/src/main/java/com/casic/swing/ui/TimeGuardNtp.java index c79bdba..c7e7a98 100644 --- a/src/main/java/com/casic/swing/ui/TimeGuardNtp.java +++ b/src/main/java/com/casic/swing/ui/TimeGuardNtp.java @@ -50,7 +50,7 @@ stateView.setText("未同步"); setStateView(Color.GRAY); - StringHelper.createLogFile(); + ConfigHelper.saveConfig(); //检查环境 new SwingWorker() { @@ -71,7 +71,7 @@ } }.execute(); - serverConfig = StringHelper.getConfigData(); + serverConfig = ConfigHelper.getConfigData(); /** * 时间间隔,单位为毫秒 * */ @@ -81,7 +81,7 @@ currentTimeLabel.setText(systemTime); }).start(); - String ntpTime = StringHelper.getNtpUpdateTime(); + String ntpTime = LogToFile.load(); if (!"".equals(ntpTime)) { recentlyTimeLabel.setText(ntpTime); } else { @@ -141,7 +141,7 @@ // String result = "5 Jan 11:20:24 ntpdate[807910]: adjust time server 114.118.7.161 offset -0.004064 sec"; // String result = "5 Jan 11:24:06 ntpdate[824403]: no server suitable for synchronization found"; String result = CommandUtil.ntpDate(host); - StringHelper.saveLog(result); + LogToFile.save(result); if ("".equals(result)) { setStateView(Color.RED); diff --git a/src/main/java/com/casic/swing/utils/CommandUtil.java b/src/main/java/com/casic/swing/utils/CommandUtil.java index 2515971..f1a7fd0 100644 --- a/src/main/java/com/casic/swing/utils/CommandUtil.java +++ b/src/main/java/com/casic/swing/utils/CommandUtil.java @@ -15,7 +15,6 @@ * 检查当前系统是否已安装NTP */ public static boolean checkEnv() { - System.out.println("检查当前系统是否支持NTP"); try { // Process exec = Runtime.getRuntime().exec("ls"); Process exec = Runtime.getRuntime().exec("rpm -q ntp"); @@ -45,7 +44,6 @@ public static String ntpDate(String host) { try { String command = "ntpdate -u " + host; - System.out.println("授时同步 ===> " + command); Process exec = Runtime.getRuntime().exec(command); try { //等待命令执行完成 diff --git a/CasicTimeGuard.iml b/CasicTimeGuard.iml index 40532bb..b3a1877 100644 --- a/CasicTimeGuard.iml +++ b/CasicTimeGuard.iml @@ -11,7 +11,6 @@ - diff --git a/pom.xml b/pom.xml index 3be19b5..83b9dab 100644 --- a/pom.xml +++ b/pom.xml @@ -16,13 +16,6 @@ - org.projectlombok - lombok - 1.18.22 - true - - - com.alibaba fastjson 1.2.79 diff --git a/src/main/java/com/casic/swing/ui/TimeGuardNtp.java b/src/main/java/com/casic/swing/ui/TimeGuardNtp.java index c79bdba..c7e7a98 100644 --- a/src/main/java/com/casic/swing/ui/TimeGuardNtp.java +++ b/src/main/java/com/casic/swing/ui/TimeGuardNtp.java @@ -50,7 +50,7 @@ stateView.setText("未同步"); setStateView(Color.GRAY); - StringHelper.createLogFile(); + ConfigHelper.saveConfig(); //检查环境 new SwingWorker() { @@ -71,7 +71,7 @@ } }.execute(); - serverConfig = StringHelper.getConfigData(); + serverConfig = ConfigHelper.getConfigData(); /** * 时间间隔,单位为毫秒 * */ @@ -81,7 +81,7 @@ currentTimeLabel.setText(systemTime); }).start(); - String ntpTime = StringHelper.getNtpUpdateTime(); + String ntpTime = LogToFile.load(); if (!"".equals(ntpTime)) { recentlyTimeLabel.setText(ntpTime); } else { @@ -141,7 +141,7 @@ // String result = "5 Jan 11:20:24 ntpdate[807910]: adjust time server 114.118.7.161 offset -0.004064 sec"; // String result = "5 Jan 11:24:06 ntpdate[824403]: no server suitable for synchronization found"; String result = CommandUtil.ntpDate(host); - StringHelper.saveLog(result); + LogToFile.save(result); if ("".equals(result)) { setStateView(Color.RED); diff --git a/src/main/java/com/casic/swing/utils/CommandUtil.java b/src/main/java/com/casic/swing/utils/CommandUtil.java index 2515971..f1a7fd0 100644 --- a/src/main/java/com/casic/swing/utils/CommandUtil.java +++ b/src/main/java/com/casic/swing/utils/CommandUtil.java @@ -15,7 +15,6 @@ * 检查当前系统是否已安装NTP */ public static boolean checkEnv() { - System.out.println("检查当前系统是否支持NTP"); try { // Process exec = Runtime.getRuntime().exec("ls"); Process exec = Runtime.getRuntime().exec("rpm -q ntp"); @@ -45,7 +44,6 @@ public static String ntpDate(String host) { try { String command = "ntpdate -u " + host; - System.out.println("授时同步 ===> " + command); Process exec = Runtime.getRuntime().exec(command); try { //等待命令执行完成 diff --git a/src/main/java/com/casic/swing/utils/ConfigHelper.java b/src/main/java/com/casic/swing/utils/ConfigHelper.java new file mode 100644 index 0000000..e7dbd11 --- /dev/null +++ b/src/main/java/com/casic/swing/utils/ConfigHelper.java @@ -0,0 +1,62 @@ +package com.casic.swing.utils; + +import java.io.*; + +/** + * @author Administrator + */ +public class ConfigHelper { + public static void saveConfig() { + File rootDir = Constant.intRootDir(); + File configFile = new File(rootDir + File.separator + "config.txt"); + if (!configFile.exists()) { + try { + configFile.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (0 == configFile.length() || !configFile.exists()) { + //写入配置文件 + try { + FileWriter fileWriter = new FileWriter(configFile); + BufferedWriter writer = new BufferedWriter(fileWriter); + writer.write("http://localhost:11410"); + writer.flush(); + writer.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + System.out.println("后台配置路径 ===> " + configFile.getAbsolutePath()); + } + + public static String getConfigData() { + try { + File rootDir = Constant.intRootDir(); + File configFile = new File(rootDir + File.separator + "config.txt"); + if (!configFile.exists()) { + try { + configFile.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + } + InputStreamReader streamReader = new InputStreamReader(new FileInputStream(configFile)); + BufferedReader bufferedReader = new BufferedReader(streamReader); + StringBuilder data = new StringBuilder(); + String s; + try { + while ((s = bufferedReader.readLine()) != null) { + data.append(s); + } + return data.toString(); + } catch (IOException e) { + e.printStackTrace(); + } + } catch (IOException e) { + e.printStackTrace(); + } + return ""; + } +} diff --git a/CasicTimeGuard.iml b/CasicTimeGuard.iml index 40532bb..b3a1877 100644 --- a/CasicTimeGuard.iml +++ b/CasicTimeGuard.iml @@ -11,7 +11,6 @@ - diff --git a/pom.xml b/pom.xml index 3be19b5..83b9dab 100644 --- a/pom.xml +++ b/pom.xml @@ -16,13 +16,6 @@ - org.projectlombok - lombok - 1.18.22 - true - - - com.alibaba fastjson 1.2.79 diff --git a/src/main/java/com/casic/swing/ui/TimeGuardNtp.java b/src/main/java/com/casic/swing/ui/TimeGuardNtp.java index c79bdba..c7e7a98 100644 --- a/src/main/java/com/casic/swing/ui/TimeGuardNtp.java +++ b/src/main/java/com/casic/swing/ui/TimeGuardNtp.java @@ -50,7 +50,7 @@ stateView.setText("未同步"); setStateView(Color.GRAY); - StringHelper.createLogFile(); + ConfigHelper.saveConfig(); //检查环境 new SwingWorker() { @@ -71,7 +71,7 @@ } }.execute(); - serverConfig = StringHelper.getConfigData(); + serverConfig = ConfigHelper.getConfigData(); /** * 时间间隔,单位为毫秒 * */ @@ -81,7 +81,7 @@ currentTimeLabel.setText(systemTime); }).start(); - String ntpTime = StringHelper.getNtpUpdateTime(); + String ntpTime = LogToFile.load(); if (!"".equals(ntpTime)) { recentlyTimeLabel.setText(ntpTime); } else { @@ -141,7 +141,7 @@ // String result = "5 Jan 11:20:24 ntpdate[807910]: adjust time server 114.118.7.161 offset -0.004064 sec"; // String result = "5 Jan 11:24:06 ntpdate[824403]: no server suitable for synchronization found"; String result = CommandUtil.ntpDate(host); - StringHelper.saveLog(result); + LogToFile.save(result); if ("".equals(result)) { setStateView(Color.RED); diff --git a/src/main/java/com/casic/swing/utils/CommandUtil.java b/src/main/java/com/casic/swing/utils/CommandUtil.java index 2515971..f1a7fd0 100644 --- a/src/main/java/com/casic/swing/utils/CommandUtil.java +++ b/src/main/java/com/casic/swing/utils/CommandUtil.java @@ -15,7 +15,6 @@ * 检查当前系统是否已安装NTP */ public static boolean checkEnv() { - System.out.println("检查当前系统是否支持NTP"); try { // Process exec = Runtime.getRuntime().exec("ls"); Process exec = Runtime.getRuntime().exec("rpm -q ntp"); @@ -45,7 +44,6 @@ public static String ntpDate(String host) { try { String command = "ntpdate -u " + host; - System.out.println("授时同步 ===> " + command); Process exec = Runtime.getRuntime().exec(command); try { //等待命令执行完成 diff --git a/src/main/java/com/casic/swing/utils/ConfigHelper.java b/src/main/java/com/casic/swing/utils/ConfigHelper.java new file mode 100644 index 0000000..e7dbd11 --- /dev/null +++ b/src/main/java/com/casic/swing/utils/ConfigHelper.java @@ -0,0 +1,62 @@ +package com.casic.swing.utils; + +import java.io.*; + +/** + * @author Administrator + */ +public class ConfigHelper { + public static void saveConfig() { + File rootDir = Constant.intRootDir(); + File configFile = new File(rootDir + File.separator + "config.txt"); + if (!configFile.exists()) { + try { + configFile.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (0 == configFile.length() || !configFile.exists()) { + //写入配置文件 + try { + FileWriter fileWriter = new FileWriter(configFile); + BufferedWriter writer = new BufferedWriter(fileWriter); + writer.write("http://localhost:11410"); + writer.flush(); + writer.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + System.out.println("后台配置路径 ===> " + configFile.getAbsolutePath()); + } + + public static String getConfigData() { + try { + File rootDir = Constant.intRootDir(); + File configFile = new File(rootDir + File.separator + "config.txt"); + if (!configFile.exists()) { + try { + configFile.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + } + InputStreamReader streamReader = new InputStreamReader(new FileInputStream(configFile)); + BufferedReader bufferedReader = new BufferedReader(streamReader); + StringBuilder data = new StringBuilder(); + String s; + try { + while ((s = bufferedReader.readLine()) != null) { + data.append(s); + } + return data.toString(); + } catch (IOException e) { + e.printStackTrace(); + } + } catch (IOException e) { + e.printStackTrace(); + } + return ""; + } +} diff --git a/src/main/java/com/casic/swing/utils/Constant.java b/src/main/java/com/casic/swing/utils/Constant.java index d1a00a3..f663791 100644 --- a/src/main/java/com/casic/swing/utils/Constant.java +++ b/src/main/java/com/casic/swing/utils/Constant.java @@ -1,5 +1,7 @@ package com.casic.swing.utils; +import java.io.File; + /** * @author a203 */ @@ -7,7 +9,11 @@ public static final String FREQUENCY_URL = "/config/findSingle?paraName=NTP_FREQUENCY"; public static final String SYNCHRONIZE_URL = "/ntp/saveResult"; - - public static final String[] HOST_NAME = {"NTP服务器(上海)", "中国国家授时中心", "清华大学", "北京大学"}; - public static final String[] HOST_IP = {"ntp.api.bz", "ntp.ntsc.ac.cn", "s1b.time.edu.cn", "s2m.time.edu.cn"}; + public static File intRootDir() { + File rootDir = new File(System.getProperty("user.dir") + File.separator + "logs"); + if (!rootDir.exists()) { + rootDir.mkdir(); + } + return rootDir; + } } diff --git a/CasicTimeGuard.iml b/CasicTimeGuard.iml index 40532bb..b3a1877 100644 --- a/CasicTimeGuard.iml +++ b/CasicTimeGuard.iml @@ -11,7 +11,6 @@ - diff --git a/pom.xml b/pom.xml index 3be19b5..83b9dab 100644 --- a/pom.xml +++ b/pom.xml @@ -16,13 +16,6 @@ - org.projectlombok - lombok - 1.18.22 - true - - - com.alibaba fastjson 1.2.79 diff --git a/src/main/java/com/casic/swing/ui/TimeGuardNtp.java b/src/main/java/com/casic/swing/ui/TimeGuardNtp.java index c79bdba..c7e7a98 100644 --- a/src/main/java/com/casic/swing/ui/TimeGuardNtp.java +++ b/src/main/java/com/casic/swing/ui/TimeGuardNtp.java @@ -50,7 +50,7 @@ stateView.setText("未同步"); setStateView(Color.GRAY); - StringHelper.createLogFile(); + ConfigHelper.saveConfig(); //检查环境 new SwingWorker() { @@ -71,7 +71,7 @@ } }.execute(); - serverConfig = StringHelper.getConfigData(); + serverConfig = ConfigHelper.getConfigData(); /** * 时间间隔,单位为毫秒 * */ @@ -81,7 +81,7 @@ currentTimeLabel.setText(systemTime); }).start(); - String ntpTime = StringHelper.getNtpUpdateTime(); + String ntpTime = LogToFile.load(); if (!"".equals(ntpTime)) { recentlyTimeLabel.setText(ntpTime); } else { @@ -141,7 +141,7 @@ // String result = "5 Jan 11:20:24 ntpdate[807910]: adjust time server 114.118.7.161 offset -0.004064 sec"; // String result = "5 Jan 11:24:06 ntpdate[824403]: no server suitable for synchronization found"; String result = CommandUtil.ntpDate(host); - StringHelper.saveLog(result); + LogToFile.save(result); if ("".equals(result)) { setStateView(Color.RED); diff --git a/src/main/java/com/casic/swing/utils/CommandUtil.java b/src/main/java/com/casic/swing/utils/CommandUtil.java index 2515971..f1a7fd0 100644 --- a/src/main/java/com/casic/swing/utils/CommandUtil.java +++ b/src/main/java/com/casic/swing/utils/CommandUtil.java @@ -15,7 +15,6 @@ * 检查当前系统是否已安装NTP */ public static boolean checkEnv() { - System.out.println("检查当前系统是否支持NTP"); try { // Process exec = Runtime.getRuntime().exec("ls"); Process exec = Runtime.getRuntime().exec("rpm -q ntp"); @@ -45,7 +44,6 @@ public static String ntpDate(String host) { try { String command = "ntpdate -u " + host; - System.out.println("授时同步 ===> " + command); Process exec = Runtime.getRuntime().exec(command); try { //等待命令执行完成 diff --git a/src/main/java/com/casic/swing/utils/ConfigHelper.java b/src/main/java/com/casic/swing/utils/ConfigHelper.java new file mode 100644 index 0000000..e7dbd11 --- /dev/null +++ b/src/main/java/com/casic/swing/utils/ConfigHelper.java @@ -0,0 +1,62 @@ +package com.casic.swing.utils; + +import java.io.*; + +/** + * @author Administrator + */ +public class ConfigHelper { + public static void saveConfig() { + File rootDir = Constant.intRootDir(); + File configFile = new File(rootDir + File.separator + "config.txt"); + if (!configFile.exists()) { + try { + configFile.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (0 == configFile.length() || !configFile.exists()) { + //写入配置文件 + try { + FileWriter fileWriter = new FileWriter(configFile); + BufferedWriter writer = new BufferedWriter(fileWriter); + writer.write("http://localhost:11410"); + writer.flush(); + writer.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + System.out.println("后台配置路径 ===> " + configFile.getAbsolutePath()); + } + + public static String getConfigData() { + try { + File rootDir = Constant.intRootDir(); + File configFile = new File(rootDir + File.separator + "config.txt"); + if (!configFile.exists()) { + try { + configFile.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + } + InputStreamReader streamReader = new InputStreamReader(new FileInputStream(configFile)); + BufferedReader bufferedReader = new BufferedReader(streamReader); + StringBuilder data = new StringBuilder(); + String s; + try { + while ((s = bufferedReader.readLine()) != null) { + data.append(s); + } + return data.toString(); + } catch (IOException e) { + e.printStackTrace(); + } + } catch (IOException e) { + e.printStackTrace(); + } + return ""; + } +} diff --git a/src/main/java/com/casic/swing/utils/Constant.java b/src/main/java/com/casic/swing/utils/Constant.java index d1a00a3..f663791 100644 --- a/src/main/java/com/casic/swing/utils/Constant.java +++ b/src/main/java/com/casic/swing/utils/Constant.java @@ -1,5 +1,7 @@ package com.casic.swing.utils; +import java.io.File; + /** * @author a203 */ @@ -7,7 +9,11 @@ public static final String FREQUENCY_URL = "/config/findSingle?paraName=NTP_FREQUENCY"; public static final String SYNCHRONIZE_URL = "/ntp/saveResult"; - - public static final String[] HOST_NAME = {"NTP服务器(上海)", "中国国家授时中心", "清华大学", "北京大学"}; - public static final String[] HOST_IP = {"ntp.api.bz", "ntp.ntsc.ac.cn", "s1b.time.edu.cn", "s2m.time.edu.cn"}; + public static File intRootDir() { + File rootDir = new File(System.getProperty("user.dir") + File.separator + "logs"); + if (!rootDir.exists()) { + rootDir.mkdir(); + } + return rootDir; + } } diff --git a/src/main/java/com/casic/swing/utils/LogToFile.java b/src/main/java/com/casic/swing/utils/LogToFile.java new file mode 100644 index 0000000..67ad8d9 --- /dev/null +++ b/src/main/java/com/casic/swing/utils/LogToFile.java @@ -0,0 +1,106 @@ +package com.casic.swing.utils; + +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.util.Calendar; + +/** + * @author Administrator + */ +public class LogToFile { + public static void save(String log) { + File rootDir = Constant.intRootDir(); + File logFile = new File(rootDir + File.separator + "update.log"); + //写入配置文件 + try { + FileOutputStream fos; + if (!logFile.exists()) { + logFile.createNewFile(); + //首次写入获取 + fos = new FileOutputStream(logFile); + } else { + //如果文件已存在,那么就在文件末尾追加写入 + fos = new FileOutputStream(logFile, true); + } + OutputStreamWriter outStream = new OutputStreamWriter(fos, StandardCharsets.UTF_8); + outStream.write(log); + outStream.write("\r\n"); + //写入完成关闭流 + outStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static String load() { + try { + File rootDir = Constant.intRootDir(); + File logFile = new File(rootDir + File.separator + "update.log"); + FileInputStream inputStream = new FileInputStream(logFile); + InputStreamReader streamReader = new InputStreamReader(inputStream); + BufferedReader bufferedReader = new BufferedReader(streamReader); + StringBuilder data = new StringBuilder(); + String s; + while ((s = bufferedReader.readLine()) != null) { + data.append(s); + data.append("\r\n"); + } + if ("".equals(data.toString())) { + return ""; + } + String result = data.toString().split("\r\n")[0]; + /** + * 5 Jan 11:20:24 ntpdate[807910]: adjust time server 114.118.7.161 offset -0.004064 sec + * 5 Jan 11:24:06 ntpdate[824403]: no server suitable for synchronization found + * */ + String ntpDate = result.split("ntpdate")[0]; + String[] split = ntpDate.split(" "); + + Calendar date = Calendar.getInstance(); + String year = String.valueOf(date.get(Calendar.YEAR)); + return year + "-" + monthConvert(split[1]) + "-" + dayConvert(split[0]) + " " + split[2]; + } catch (IOException e) { + e.printStackTrace(); + } + return ""; + } + + private static String monthConvert(String engMonth) { + switch (engMonth) { + case "Jan": + return "01"; + case "Feb": + return "02"; + case "Mar": + return "03"; + case "Apr": + return "04"; + case "May": + return "05"; + case "Jun": + return "06"; + case "Jul": + return "07"; + case "Aug": + return "08"; + case "Sept": + return "09"; + case "Oct": + return "10"; + case "Nov": + return "11"; + case "Dec": + return "12"; + default: + return "00"; + } + } + + private static String dayConvert(String day) { + if (Integer.parseInt(day) < 10) { + return "0" + day; + } else { + return day; + } + } +} diff --git a/CasicTimeGuard.iml b/CasicTimeGuard.iml index 40532bb..b3a1877 100644 --- a/CasicTimeGuard.iml +++ b/CasicTimeGuard.iml @@ -11,7 +11,6 @@ - diff --git a/pom.xml b/pom.xml index 3be19b5..83b9dab 100644 --- a/pom.xml +++ b/pom.xml @@ -16,13 +16,6 @@ - org.projectlombok - lombok - 1.18.22 - true - - - com.alibaba fastjson 1.2.79 diff --git a/src/main/java/com/casic/swing/ui/TimeGuardNtp.java b/src/main/java/com/casic/swing/ui/TimeGuardNtp.java index c79bdba..c7e7a98 100644 --- a/src/main/java/com/casic/swing/ui/TimeGuardNtp.java +++ b/src/main/java/com/casic/swing/ui/TimeGuardNtp.java @@ -50,7 +50,7 @@ stateView.setText("未同步"); setStateView(Color.GRAY); - StringHelper.createLogFile(); + ConfigHelper.saveConfig(); //检查环境 new SwingWorker() { @@ -71,7 +71,7 @@ } }.execute(); - serverConfig = StringHelper.getConfigData(); + serverConfig = ConfigHelper.getConfigData(); /** * 时间间隔,单位为毫秒 * */ @@ -81,7 +81,7 @@ currentTimeLabel.setText(systemTime); }).start(); - String ntpTime = StringHelper.getNtpUpdateTime(); + String ntpTime = LogToFile.load(); if (!"".equals(ntpTime)) { recentlyTimeLabel.setText(ntpTime); } else { @@ -141,7 +141,7 @@ // String result = "5 Jan 11:20:24 ntpdate[807910]: adjust time server 114.118.7.161 offset -0.004064 sec"; // String result = "5 Jan 11:24:06 ntpdate[824403]: no server suitable for synchronization found"; String result = CommandUtil.ntpDate(host); - StringHelper.saveLog(result); + LogToFile.save(result); if ("".equals(result)) { setStateView(Color.RED); diff --git a/src/main/java/com/casic/swing/utils/CommandUtil.java b/src/main/java/com/casic/swing/utils/CommandUtil.java index 2515971..f1a7fd0 100644 --- a/src/main/java/com/casic/swing/utils/CommandUtil.java +++ b/src/main/java/com/casic/swing/utils/CommandUtil.java @@ -15,7 +15,6 @@ * 检查当前系统是否已安装NTP */ public static boolean checkEnv() { - System.out.println("检查当前系统是否支持NTP"); try { // Process exec = Runtime.getRuntime().exec("ls"); Process exec = Runtime.getRuntime().exec("rpm -q ntp"); @@ -45,7 +44,6 @@ public static String ntpDate(String host) { try { String command = "ntpdate -u " + host; - System.out.println("授时同步 ===> " + command); Process exec = Runtime.getRuntime().exec(command); try { //等待命令执行完成 diff --git a/src/main/java/com/casic/swing/utils/ConfigHelper.java b/src/main/java/com/casic/swing/utils/ConfigHelper.java new file mode 100644 index 0000000..e7dbd11 --- /dev/null +++ b/src/main/java/com/casic/swing/utils/ConfigHelper.java @@ -0,0 +1,62 @@ +package com.casic.swing.utils; + +import java.io.*; + +/** + * @author Administrator + */ +public class ConfigHelper { + public static void saveConfig() { + File rootDir = Constant.intRootDir(); + File configFile = new File(rootDir + File.separator + "config.txt"); + if (!configFile.exists()) { + try { + configFile.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (0 == configFile.length() || !configFile.exists()) { + //写入配置文件 + try { + FileWriter fileWriter = new FileWriter(configFile); + BufferedWriter writer = new BufferedWriter(fileWriter); + writer.write("http://localhost:11410"); + writer.flush(); + writer.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + System.out.println("后台配置路径 ===> " + configFile.getAbsolutePath()); + } + + public static String getConfigData() { + try { + File rootDir = Constant.intRootDir(); + File configFile = new File(rootDir + File.separator + "config.txt"); + if (!configFile.exists()) { + try { + configFile.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + } + InputStreamReader streamReader = new InputStreamReader(new FileInputStream(configFile)); + BufferedReader bufferedReader = new BufferedReader(streamReader); + StringBuilder data = new StringBuilder(); + String s; + try { + while ((s = bufferedReader.readLine()) != null) { + data.append(s); + } + return data.toString(); + } catch (IOException e) { + e.printStackTrace(); + } + } catch (IOException e) { + e.printStackTrace(); + } + return ""; + } +} diff --git a/src/main/java/com/casic/swing/utils/Constant.java b/src/main/java/com/casic/swing/utils/Constant.java index d1a00a3..f663791 100644 --- a/src/main/java/com/casic/swing/utils/Constant.java +++ b/src/main/java/com/casic/swing/utils/Constant.java @@ -1,5 +1,7 @@ package com.casic.swing.utils; +import java.io.File; + /** * @author a203 */ @@ -7,7 +9,11 @@ public static final String FREQUENCY_URL = "/config/findSingle?paraName=NTP_FREQUENCY"; public static final String SYNCHRONIZE_URL = "/ntp/saveResult"; - - public static final String[] HOST_NAME = {"NTP服务器(上海)", "中国国家授时中心", "清华大学", "北京大学"}; - public static final String[] HOST_IP = {"ntp.api.bz", "ntp.ntsc.ac.cn", "s1b.time.edu.cn", "s2m.time.edu.cn"}; + public static File intRootDir() { + File rootDir = new File(System.getProperty("user.dir") + File.separator + "logs"); + if (!rootDir.exists()) { + rootDir.mkdir(); + } + return rootDir; + } } diff --git a/src/main/java/com/casic/swing/utils/LogToFile.java b/src/main/java/com/casic/swing/utils/LogToFile.java new file mode 100644 index 0000000..67ad8d9 --- /dev/null +++ b/src/main/java/com/casic/swing/utils/LogToFile.java @@ -0,0 +1,106 @@ +package com.casic.swing.utils; + +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.util.Calendar; + +/** + * @author Administrator + */ +public class LogToFile { + public static void save(String log) { + File rootDir = Constant.intRootDir(); + File logFile = new File(rootDir + File.separator + "update.log"); + //写入配置文件 + try { + FileOutputStream fos; + if (!logFile.exists()) { + logFile.createNewFile(); + //首次写入获取 + fos = new FileOutputStream(logFile); + } else { + //如果文件已存在,那么就在文件末尾追加写入 + fos = new FileOutputStream(logFile, true); + } + OutputStreamWriter outStream = new OutputStreamWriter(fos, StandardCharsets.UTF_8); + outStream.write(log); + outStream.write("\r\n"); + //写入完成关闭流 + outStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static String load() { + try { + File rootDir = Constant.intRootDir(); + File logFile = new File(rootDir + File.separator + "update.log"); + FileInputStream inputStream = new FileInputStream(logFile); + InputStreamReader streamReader = new InputStreamReader(inputStream); + BufferedReader bufferedReader = new BufferedReader(streamReader); + StringBuilder data = new StringBuilder(); + String s; + while ((s = bufferedReader.readLine()) != null) { + data.append(s); + data.append("\r\n"); + } + if ("".equals(data.toString())) { + return ""; + } + String result = data.toString().split("\r\n")[0]; + /** + * 5 Jan 11:20:24 ntpdate[807910]: adjust time server 114.118.7.161 offset -0.004064 sec + * 5 Jan 11:24:06 ntpdate[824403]: no server suitable for synchronization found + * */ + String ntpDate = result.split("ntpdate")[0]; + String[] split = ntpDate.split(" "); + + Calendar date = Calendar.getInstance(); + String year = String.valueOf(date.get(Calendar.YEAR)); + return year + "-" + monthConvert(split[1]) + "-" + dayConvert(split[0]) + " " + split[2]; + } catch (IOException e) { + e.printStackTrace(); + } + return ""; + } + + private static String monthConvert(String engMonth) { + switch (engMonth) { + case "Jan": + return "01"; + case "Feb": + return "02"; + case "Mar": + return "03"; + case "Apr": + return "04"; + case "May": + return "05"; + case "Jun": + return "06"; + case "Jul": + return "07"; + case "Aug": + return "08"; + case "Sept": + return "09"; + case "Oct": + return "10"; + case "Nov": + return "11"; + case "Dec": + return "12"; + default: + return "00"; + } + } + + private static String dayConvert(String day) { + if (Integer.parseInt(day) < 10) { + return "0" + day; + } else { + return day; + } + } +} diff --git a/src/main/java/com/casic/swing/utils/StringHelper.java b/src/main/java/com/casic/swing/utils/StringHelper.java index b6ee15e..fa4b607 100644 --- a/src/main/java/com/casic/swing/utils/StringHelper.java +++ b/src/main/java/com/casic/swing/utils/StringHelper.java @@ -3,158 +3,10 @@ import com.alibaba.fastjson.JSON; import com.casic.swing.bean.FrequencyBean; -import java.io.*; -import java.util.Calendar; - /** * @author a203 */ public class StringHelper { - - private static File logFile; - private static File configFile; - - public static void createLogFile() { - File rootDir = new File(System.getProperty("user.dir") + File.separator + "logs"); - if (!rootDir.exists()) { - rootDir.mkdir(); - } - logFile = new File(rootDir + File.separator + "update.log"); - configFile = new File(rootDir + File.separator + "config.txt"); - if (!logFile.exists()) { - try { - logFile.createNewFile(); - } catch (IOException e) { - e.printStackTrace(); - } - } - System.out.println("同步记录路径 ===> " + logFile.getAbsolutePath()); - if (!configFile.exists()) { - try { - configFile.createNewFile(); - } catch (IOException e) { - e.printStackTrace(); - } - } - //写入配置文件 - String configData = getConfigData(); - if ("".equals(configData) || configData.contains("localhost")) { - //用于区分是否是第一次启动 - saveConfig(); - } - System.out.println("后台配置路径 ===> " + configFile.getAbsolutePath()); - } - - private static void saveConfig() { - try { - write(new FileWriter(configFile), "http://localhost:11410"); - } catch (IOException e) { - e.printStackTrace(); - } - } - - public static void saveLog(String data) { - try { - write(new FileWriter(logFile), data); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private static void write(FileWriter writer, String data) throws IOException { - BufferedWriter out = new BufferedWriter(writer); - out.write(data); - out.flush(); - out.close(); - } - - public static String getNtpUpdateTime() { - try { - InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(logFile)); - String s = loadString(inputStreamReader); - if ("".equals(s)) { - return ""; - } - /** - * 5 Jan 11:20:24 ntpdate[807910]: adjust time server 114.118.7.161 offset -0.004064 sec - * 5 Jan 11:24:06 ntpdate[824403]: no server suitable for synchronization found - * */ - String ntpDate = s.split("ntpdate")[0]; - String[] split = ntpDate.split(" "); - - Calendar date = Calendar.getInstance(); - String year = String.valueOf(date.get(Calendar.YEAR)); - return year + "-" + monthConvert(split[1]) + "-" + dayConvert(split[0]) + " " + split[2]; - } catch (IOException e) { - e.printStackTrace(); - } - return ""; - } - - private static String monthConvert(String engMonth) { - switch (engMonth) { - case "Jan": - return "01"; - case "Feb": - return "02"; - case "Mar": - return "03"; - case "Apr": - return "04"; - case "May": - return "05"; - case "Jun": - return "06"; - case "Jul": - return "07"; - case "Aug": - return "08"; - case "Sept": - return "09"; - case "Oct": - return "10"; - case "Nov": - return "11"; - case "Dec": - return "12"; - default: - return "00"; - } - } - - private static String dayConvert(String day) { - if (Integer.parseInt(day) < 10) { - return "0" + day; - } else { - return day; - } - } - - public static String getConfigData() { - try { - InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(configFile)); - return loadString(inputStreamReader); - } catch (IOException e) { - e.printStackTrace(); - } - return ""; - } - - private static String loadString(InputStreamReader reader) { - BufferedReader bufferedReader = new BufferedReader(reader); - StringBuilder data = new StringBuilder(); - String s; - try { - while ((s = bufferedReader.readLine()) != null) { - data.append(s); - } - return data.toString(); - } catch (IOException e) { - e.printStackTrace(); - } - return ""; - } - public static String parseJson(String json) { FrequencyBean bean = JSON.parseObject(json, FrequencyBean.class); if (bean.getCode() == 200) {