java实现自动关机(含exe执行文件)

目录

一、执行结果

二、思路

三、实现功能

四、代码

 五、不足缺点


一、执行结果

二、思路

  • 获取当前时间,获取用户想要关机的时间,计算时间差,通过这个时间差调用执行Windows自带的关机命令“shutdown”

三、实现功能&注意事项

  • 根据用户输入时间实现定时关机。
  • 将java代码导出为jar文件再根据jar转换为exe执行文件。(利用idea导出为jar,利用exe4j导出为exe)
  • 附带exe执行文件。

四、代码

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
//敬德原创
//2022年1月5日 14:55:49
public class shtudown {
    public static void main(String[] args)throws IOException {

        Scanner input=new Scanner(System.in);
        String shutdownTime;
        String[]result;

        SimpleDateFormat sdf = new SimpleDateFormat();// 格式化时间
        sdf.applyPattern("yyyy-MM-dd HH:mm:ss a");// a为am/pm的标记
        Date date = new Date();// 获取当前时间
        String now=sdf.format(date);

        System.out.println("现在是:" + now); // 输出已经格式化的现在时间(24小时制)

        System.out.println("几点关机(二十四小时制,例如21:57)?");
        while (true){
            shutdownTime=input.next();
            result=shutdownTime.split(":");
            if (result.length != 2){
                System.out.println("请重新输入:");
                result=null;
            }else{
                break;
            }
        }
        int shutdownTimeInt=Integer.parseInt(result[0])*60 + Integer.parseInt(result[1])  ;//关机时间距离00:00的分钟数
        int nowTimeInt=Integer.parseInt(now.substring(11,13))*60 + Integer.parseInt(now.substring(14,16));//现在时间距离00:00的分钟数
        int disparityMin;
        //关机时间>当前时间则是当天关机,否则是第二天关机
        if (shutdownTimeInt > nowTimeInt){
            disparityMin=shutdownTimeInt-nowTimeInt;
        }else {
            disparityMin=24*60-nowTimeInt+shutdownTimeInt;
        }
        System.out.println(disparityMin);
//        设置自动关机,1000秒(1小时)
        disparityMin *=60;
        Runtime.getRuntime().exec("shutdown -s -t "+ String.valueOf(disparityMin));//1h = 3600s 3min=180

        System.out.println("输入123123取消关机");
        //取消关机
        if (input.nextInt()==123123){
            Runtime.getRuntime().exec("shutdown -a");
        }
    }
}

 五、不足缺点

  • 当前仅能实现简单的关机,最大24h内关机,如果想实现在某天某刻关机,可自行更改代码。
  • 并未实现多余测试,比如输入88:88依旧会执行成功(实际现实中上并没有88:88这个“时间”)

exe执行文件(电脑须有java环境):

「自动关机.exe」https://www.aliyundrive.com/s/ucknMgvBw45 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

exe4j工具下载地址:exe4j下载-exe4j官方版下载[文件生成]-华军软件园 (onlinedown.net)

-----------------------------------------------------------------------------------------------------------

最后

可以点个赞吗亲

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值