java基础--Runtime

发布时间:2016-12-10 17:08:10 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"java基础--Runtime",主要涉及到java基础--Runtime方面的内容,对于java基础--Runtime感兴趣的同学可以参考一下。

Runtime内部使用单例设计模式,应用程序不能创建自己的 Runtime 类实例。 每个 Java 应用程序都有一个Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过getRuntime 方法获取当前的Runtime对象。   Runtime rt = Runtime.getRuntime(); try { Process process = rt.exec("ipconfig /all"); //输入流是将资源数据读入到缓冲Buffer中,输出流是将缓冲Buffer中的数据按照指定格式 写出到一个指定的位置。 InputStream in = process.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); String line; while ((line=reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); }         Runtime的exec方法可以在有指定环境和工作目录的独立进程中执行指定的字符串命令,可以使用系统命令或者调用程序执行,同时返回一个process,java可以对得到的process用来控制进程并获得相关信息。Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。java不能得到本地系统的其他进程,只能得到自身调用并生成的进程对象,所以java不能通过destroy来杀掉已经工作的进程。         因为平时在床铺上玩手机,电脑开着wifi共享,睡觉的时候又不想下来关机,所以都是用“shutdown -s -t 秒数”来定时关机,在学了今天的Runtime后,感觉可以用java写一个类似的程序,所以花了一点时间写了下面的代码:   import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class RuntimeDemo { JFrame jf ; JButton but_signout; JButton but_shutdown; JButton but_cancle; Runtime rt; JButton but_ok; JButton but_no; JTextField jtf; JDialog jd; //在构造函数里初始化各个组件 public RuntimeDemo() { rt = Runtime.getRuntime(); jf = new JFrame("java_系统管理"); but_signout = new JButton("注销"); but_shutdown = new JButton("关机"); but_cancle = new JButton("取消"); jf.setLayout(new FlowLayout()); jf.add(but_signout); jf.add(but_shutdown); jf.add(but_cancle); event(); //设置窗口大小和位置并显示 jf.setBounds(550, 280, 50, 150); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } //添加事件监听器 public void event() { but_signout.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { rt.exec("shutdown -l"); } catch (IOException e1) { e1.printStackTrace(); } } }); but_shutdown.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { jd = new JDialog(jf, "关机倒计时", true); jd.setLayout(new GridLayout(2,2)); jtf = new JTextField(8); JLabel jl = new JLabel("秒后关机"); but_ok = new JButton("确定"); but_no = new JButton("取消"); jd.setBounds(560, 300, 180, 90); jd.add(jtf); jd.add(jl); jd.add(but_no); jd.add(but_ok); event(); jd.setVisible(true); } public void event(){ but_no.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { jd.setVisible(false); } }); but_ok.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String input = jtf.getText(); int time = 0; try{ time = Integer.parseInt(jtf.getText()); }catch(Exception e1){ time = 10; } try { rt.exec("shutdown -s -t " + time); jd.setVisible(false); } catch (IOException e1) { e1.printStackTrace(); } } }); } }); but_cancle.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { rt.exec("shutdown -a"); } catch (IOException e1) { e1.printStackTrace(); } } }); } public static void main(String[] args) { RuntimeDemo rd = new RuntimeDemo(); } }                                        

上一篇:电脑技巧36问(新手必读)(三)
下一篇:页面布局margin:0 auto失效

相关文章

相关评论