怎么用java代码 实现win10系统的 自动关机?

方法一:
先写两个批处理文件
定时关机.bat

取消关机.bat
步骤:
1.先新建两个.txt 放在c盘根目录(随便选地方),用以上名字命名。
2.在定时关机.txt里面写上“shutdown -s -t 3600”
3600代表多久之后关机,单位是秒,可以自行设置。如图:
在这里插入图片描述
3.再在取消关机.txt 里面写上“shutdown -a”,如图:
在这里插入图片描述
4.把这两个txt文件重命名为.bat文件,他会提示你这个,点确定就好。
在这里插入图片描述
现在打开你的eclipse,新建两个class:

public class 关机 {

	public static void main(String[] args) {
		try {
			Process ps = Runtime.getRuntime().exec("c:\\定时关机.bat");
			System.out.println(loadStream(ps.getInputStream()));
			System.out.println(loadStream(ps.getErrorStream()));
			} catch (IOException e) {
			e.printStackTrace();
			}
			}

			public static String loadStream(InputStream in) throws IOException {
			BufferedReader reader = new BufferedReader(new InputStreamReader(in));
			StringBuffer sb = new StringBuffer();
			String line;
			while ((line = reader.readLine()) != null) {
			sb.append(line);
			}
			return sb.toString();
			}
}
public class 取消关机 {

	public static void main(String[] args) {
		try {
			Process ps = Runtime.getRuntime().exec("c:\\取消关机.bat");
			System.out.println(loadStream(ps.getInputStream()));
			System.out.println(loadStream(ps.getErrorStream()));
			} catch (IOException e) {
			e.printStackTrace();
			}
			}

			public static String loadStream(InputStream in) throws IOException {
			BufferedReader reader = new BufferedReader(new InputStreamReader(in));
			StringBuffer sb = new StringBuffer();
			String line;
			while ((line = reader.readLine()) != null) {
			sb.append(line);
			}
			return sb.toString();
			}
}

有的同学会问,我这个只是运行main方法不行啊 ,我想从桌面上运行这两个类行不行?
当然可以,我们需要做的就是把这两个类给导出到桌面。
步骤:
1Eclipse中的“file—export” 然后出现下面这这个,选择“java----jar file”:
在这里插入图片描述点击下一步:
在这里插入图片描述
第一步按左面的倒三角选择你的包的要运行的那个类。
第二步选择你的文件存放的位置。

接下来,按“next—next ”到这个界面:
在这里插入图片描述
在“Browse” 可以选择你要运行的main方法。点击finish。
用同样的方法导出另一个.jar
如果保存到桌面的话 就会有两个文件生成。
在这里插入图片描述
点击自动关机.jar
在这里插入图片描述
点击取消关机.jar
在这里插入图片描述
这样就可以了。

第二种方法:
不需要写.bat文件就能实现。eclipse如下模块中复制你需要的一部分代码即可,
其他的不用复制。

另外的步骤就和前面一样了。

public class Test {
    // 默认60秒后关机
    public void shutdown() {
        // 关机
        try {
            Runtime.getRuntime().exec("shutdown /s /t  60");   
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    // 根据输入的时间秒数关机
    public void shutdown(String s) {
        try {
            // 关机
            Runtime.getRuntime().exec("shutdown /s /t " + s);  //关机时间可以自动设置
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 重启
    public void restart() {
        try {
            Runtime.getRuntime().exec("shutdown -r ");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    /* 截屏screenshot
     * 参数:图片存放的位置
     * 返回: 生成图片生成的路径,图片格式是png,也可以根据自己的需要进行修改
    */
    public String screenShot(String fileName) {
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Rectangle screenRectangle = new Rectangle(screenSize);
        String randomName = UUID.randomUUID().toString().replace("-", "");
        String name = randomName + ".png";
        // 截图保存的路径
        File screenFile = new File(fileName);
        Robot robot;
        String path = "";
        boolean b = false;
        try {
            robot = new Robot();
            BufferedImage image = robot.createScreenCapture(screenRectangle);
            File f = new File(screenFile, name);
            b =ImageIO.write(image, "png", f);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if(b){
            path = fileName + File.separator +name;
        }
        return path;
    }
}

 

控制电脑关机和重启只有一行代码。截屏的需要设置存放路径,有多行。

这里面没有需要外引的jar包。

什么?不会写?
我给你简单搞一个吧。比如说关机的。
(斜杠和减号都可以运行)

public class 关机2 {
	
	public static void main(String[] args) {
		关机2 gj = new 关机2();
		gj.shutdown();
	}
	
    // 默认60秒后关机
    public void shutdown() {
        // 关机
        try {
            Runtime.getRuntime().exec("shutdown /s /t  600");
            //取消关机
           // Runtime.getRuntime().exec("shutdown -a");    
        } catch (IOException e) {
          
            e.printStackTrace();
        }
    }
    }

在这里插入图片描述
散会!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值