【Java精品源码栏目提醒】:网学会员,鉴于大家对Java精品源码十分关注,论文会员在此为大家搜集整理了“java实现系统定时无限重启源代码 - 其它资料”一文,供大家参考学习!
代码的功能是用
Java 实现定时无限重启的小软件。
使用的 jar 包是 jdom.jar代码读取系统时间判断是否到达设定时间。
如果是则显示密码输入提示。
如果密码输入错误或者不输入密码或者任务管理器结束程序都会引起程序重启。
能力有限智能手动放在启动里面。
不会写入注册表。
代码也很乱。
请见谅。
第一步:安装 jre 要有 jre 否则无法执行。
有些软件能够将 jar 文件与 jre 打包成 exe 文件。
我没试成功。
有心的网友可以试试。
第二步:启动程序 把程序与 XML 文件放在同一个文件夹下。
创建程序的快捷方式。
将快捷方式拖入开始-所有程序-启动里面。
第三部:设置时间密码 时间与密码在代码对应的 XML 文件中配置。
默认文件名为 time.xml xml 文件格式为 主类package com.winimport
java.awt.Colorimport
java.awt.event.ActionEventimport
java.awt.event.ActionListenerimport
java.awt.event.WindowEventimport
java.awt.event.WindowListenerimport
java.io.BufferedWriterimport
java.io.Fileimport
java.io.FileOutputStreamimport
java.io.OutputStreamWriterimport
java.text.SimpleDateFormatimport
java.util.Dateimport javax.swing.JButtonimport javax.swing.JFrameimport javax.swing.JLabelimport javax.swing.JTextFieldimport javax.swing.SwingConstantsimport javax.swing.UIManagerpublic class restar extends JFrame SimpleDateFormat dfnull resXml xml null int time String passwordpublic restar//调用父类的构造函数 superWindowpublic void creatWinthrows Exception//创建弹出窗口,并添加监听事件 JFrame frame new JFramewin frame.getContentPane.setLayoutnull frame.setBounds600 300 250 100 frame.getContentPane.setBackgroundColor.orange frame.addWindowListenernew WindowListener public void windowClosingWindowEvent e // TODO Auto-generated method stub try res catch Exception e1 // TODO Auto-generated catch block e1.printStackTrace Override public void windowDeactivatedWindowEvent e // TODO Auto-generated method stub Override public void windowDeiconifiedWindowEvent e // TODO Auto-generated method stub Override public void windowIconifiedWindowEvent e // TODO Auto-generated method stub Override public void windowOpenedWindowEvent e // TODO Auto-generated method stub Override public void windowActivatedWindowEvent e // TODO Auto-generated method stub Override public void windowClosedWindowEvent e // TODO Auto-generated method stub frame.setUndecoratedtrueJLabel label new JLabellabel.setBounds0 0 250 20label.setText请输入密码!label.setVerticalAlignmentSwingConstants.TOPlabel.setHorizontalAlignmentSwingConstants.CENTERlabel.setVisibletrueJLabel labelNum new JLabellabelNum.setBounds205 2045 30labelNum.setVerticalAlignmentSwingConstants.TOPlabelNum.setHorizontalAlignmentSwingConstants.CENTERlabelNum.setVisibletruefinal JTextField textField new JTextFieldtextField.setBounds0 20 140 30textField.setVisibletrueJButton button new JButton确认button.setBounds145 20 60 30button.setVisibletrueframe.addlabelNumframe.addbuttonframe.addlabelframe.addtextFieldframe.setVisibletrueforint i5i0i--Thread.currentThread.sleep1000labelNum.setTextiifi0 reselsebutton.addActionListener new ActionListener Overridepublic void actionPerformedActionEvent e // TODO Auto-generated method stubxml new resXmltry passwordxml.inPut.getChildpassword.getTextiftextField.getText.equalspassword System.exit0else res catch Exception e1 // TODO Auto-generated catch block e1.printStackTrace public void resthrows Exception//系统重启方法 Process p Runtime.getRuntime.execShutdown -r -t 1 public String getTime//获得当前时间方法 df new SimpleDateFormatyyyyMMdd String date df.formatnew Date return datepublic int StToIntString str//字符串转换成数字方法 int date Integer.parseIntstr return date//public String creatBat //String batc:/res/qq.exe //return bat//static //静态快使用本地外观 try UIManager.setLookAndFeelUIManager.getSystemLookAndFeelClassName catch Exception e e.printStackTrace public static void mainString argsthrows Exception restar rs new restar resXml xml new resXml //File file new FileC:/Users/123/AppData/Roaming/Microsoft/Windows/StartMenu/Programs/Startup/qq.bat// OutputStreamWriter osr new OutputStreamWriternew FileOutputStreamfile //BufferedWriter writer new BufferedWriterosr // writer.writec:resqq.exe // writer.close int timers.StToIntxml.inPut.getChildtime.getText boolean flagtrue whileflag ifrs.StToIntrs.getTimetime rs.creatWin flagfalse Thread.currentThread.sleep10000//每 10 秒获取一次时间。
jvm 有充足时间释放内存 XML 类package com.winimport
java.awt.Colorimport
java.awt.event.ActionEventimport
java.awt.event.ActionListenerimport
java.awt.event.WindowEventimport
java.awt.event.WindowListenerimport
java.io.BufferedWriterimport
java.io.Fileimport
java.io.FileOutputStreamimport
java.io.OutputStreamWriterimport
java.text.SimpleDateFormatimport
java.util.Dateimport javax.swing.JButtonimport javax.swing.JFrameimport javax.swing.JLabelimport javax.swing.JTextFieldimport javax.swing.SwingConstantsimport javax.swing.UIManagerpublic class restar extends JFrame SimpleDateFormat dfnull resXml xml null int time String passwordpublic restar//调用父类的构造函数 superWindowpublic void creatWinthrows Exception//创建弹出窗口,并添加监听事件 JFrame frame new JFramewin frame.getContentPane.setLayoutnull frame.setBounds600 300 250 100 frame.getContentPane.setBackgroundColor.orange frame.addWindowListenernew WindowListener public void windowClosingWindowEvent e // TODO Auto-generated method stub try res catch Exception e1 // TODO Auto-generated catch block e1.printStackTrace Override public void windowDeactivatedWindowEvent e // TODO Auto-generated method stub Override public void windowDeiconifiedWindowEvent e // TODO Auto-generated method stub Override public void windowIconifiedWindowEvent e // TODO Auto-generated method stub Override public void windowOpenedWindowEvent e // TODO Auto-generated method stub Override public void windowActivatedWindowEvent e // TODO Auto-generated method stub Override public void windowClosedWindowEvent e // TODO Auto-generated method stub frame.setUndecoratedtrueJLabel label new JLabellabel.setBounds0 0 250 20label.setText请输入密码!label.setVerticalAlignmentSwingConstants.TOPlabel.setHorizontalAlignmentSwingConstants.CENTERlabel.setVisibletrueJLabel labelNum new JLabellabelNum.setBounds205 2045 30labelNum.setVerticalAlignmentSwingConstants.TOPlabelNum.setHorizontalAlignmentSwingConstants.CENTERlabelNum.setVisibletruefinal JTextField textField new JTextFieldtextField.setBounds0 20 140 30 textField.setVisibletrue JButton button new JButton确认 button.setBounds145 20 60 30 button.setVisibletrue frame.addlabelNum frame.addbutton frame.addlabel frame.addtextField frame.setVisibletrue forint i5i0i-- Thread.currentThread.sleep1000 labelNum.setTexti ifi0 res else button.addActionListener new ActionListener Override public void actionPerformedActionEvent e // TODO Auto-generated method stub xml new resXml try passwordxml.inPut.getChildpassword.getText iftextField.getText.equalspassword System.exit0 else res catch Exception e1 // TODO Auto-generated catch block e1.printStackTrace public void resthrows Exception//系统重启方法 Process p Runtime.getRuntime.execShutdown -r -t 1 public String getTime//获得当前时间方法 df new SimpleDateFormatyyyyMMdd String date df.formatnew Date return datepublic int StToIntString str//字符串转换成数字方法 int date Integer.parseIntstr return date//public String creatBat //String batc:/res/qq.exe //return bat//static //静态快使用本地外观 try UIManager.setLookAndFeelUIManager.getSystemLookAndFeelClassName catch Exception e e.printStackTrace public static void mainString argsthrows Exception restar rs new restar resXml xml new resXml //File file new FileC:/Users/123/AppData/Roaming/Microsoft/Windows/StartMenu/Programs/Startup/qq.bat// OutputStreamWriter osr new OutputStreamWriternew FileOutputStreamfile //BufferedWriter writer new BufferedWriterosr // writer.writec:resqq.exe // writer.close int timers.StToIntxml.inPut.getChildtime.getText boolean flagtrue whileflag ifrs.StToIntrs.getTimetime rs.creatWin flagfalse Thread.currentThread.sleep10000//每 10 秒获取一次时间。
jvm 有充足时间释放内存