使用Java编写电脑定时自动关机程序
1. 开发工具
javaintellij ideajdk 82. 需求
根据控制台提示信息,用户根据自己需求输入时间(秒),控制计算机自动关机的时间。
3. 解决思路
1. 如何在控制台中输出提示信息。
毫无疑问,在我们第一次编写Java程序的时候,就是学习如何在控制台输出一句“Hello World!”。
System.out.print("巴拉巴拉");// 输出语句后,不换行,out : 标准输入流对象System.out.println("巴拉巴拉");// 输出语句后,自动换行System.err.println("巴拉巴拉");// err : 通常用于在控制台输出提示性的错误信息
System:System类提供的System包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。
out:标准输出流。此流已经打开并准备好接受输出数据。
in:标准输入流。该流已经打开,准备提供输入数据。
2. 如何在控制台中获取用户的输入信息。
System.out.println("请输入多久之后关闭计算机(秒):"); // 提示用户输入时间信息int seconds; // 定义一个int类型变量(seconds),用于接收控制台输入的数据// Scanner是一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。Scanner sc = new Scanner(System.in);// 该代码允许用户从System.in读取一个数字,详情请参考JDK1.8相关文档seconds = sc.nextInt();// 测试能否获得该数据System.out.println("该数据为:" + seconds);
结果:
3. 如何根据获取到的控制台信息,设定计算机自动关闭的时间。
// seconds为秒数Runtime.getRuntime().exec("shutdown -s -t " + seconds); // -t后面还有一个空格
4.代码编写
自动关机代码
import java.io.IOException;import java.util.Scanner;public class AutoShutdown {public static void main(String[] args) throws IOException {System.out.println("欢迎使用Jrs自动关机程序!");System.out.println("请输入多久之后关闭计算机(秒):"); // 提示用户输入时间信息int seconds; // 定义一个int类型变量(seconds),用于接收控制台输入的数据// Scanner是一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。Scanner sc = new Scanner(System.in);// 利用死循环控制用户输入信息的次数,若输入数据不符合规则,输出提示信息,请求重新输入// 若输入数据符合规则,执行相应代码,打破死循环while(true) {// 该代码允许用户从System.in读取一个数字,详情请参考JDK1.8相关文档seconds = sc.nextInt();// 测试能否获得该数据System.out.println("该数据为:" + seconds);System.out.println();// 判断用户输入的Int类型数据的范围是否正确int min = 0;int max = Integer.MAX_VALUE; // int类型所能表示的最大值if (seconds < min) {System.err.println("输入的秒数不能小于0!");System.out.println("请重新输入(秒):");continue; // 忽略下面代码,继续执行循环} else if(seconds > max) {Runtime.getRuntime().exec("shutdown -s -t " + max); // -t后面还有一个空格System.out.println("电脑将在" + seconds + "秒后自动关闭!");break; // 结束while循环} else {Runtime.getRuntime().exec("shutdown -s -t " + seconds);System.out.println("电脑将在" + seconds + "秒后自动关闭!");break; // 结束while循环}}}}
取消自动关机代码
import java.io.IOException;/*** 取消自动关机程序*/public class CancelAutoShutdown {public static void main(String[] args) throws IOException {Runtime.getRuntime().exec("shutdown -a");System.out.println("您已成功取消自动关机服务!");}}
5.结果展示
1)设置自动关机运行结果:
2)取消自动关机运行结果:
6.总结
每个Java应用程序都有一个Runtime类的Runtime ,允许应用程序与运行应用程序的环境进行接口。 当前运行时可以从getRuntime方法获得。
getRuntime():返回与当前Java应用程序关联的运行时对象。 Runtime类的大多数方法都是实例方法,必须针对当前的运行时对象进行调用。
exec(String command) :在单独的进程中执行指定的字符串命令。
在前面学习过CMD和DOS命令:shutdown。