方法一:
先写两个批处理文件
定时关机.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();
}
}
}
散会!