引用:http://blog.sina.com.cn/s/blog_5e0d59fb0100dtd8.html
用java运行bat文件、用bat运行java的方法
一、java运行bat
本例子可以创建一个bat文件并且执行。同样的道理也可以使用创建好的bat文件进行修改注册表的操作
import java.io.FileWriter;
public class ExecBatFile {
public static void main(String[] args) {
Runtime rn = Runtime.getRuntime();
Process p = null;
try {
FileWriter writer = new FileWriter("c:\\openexcel.bat ");
writer.write("@echo off ");
writer.write("\r\n ");
writer.write("C:");
writer.write("\r\n ");
// C:\\Program Files\\Internet Explorer\\ 是指ie的路径
writer.write("cd C:\\Program Files\\Internet Explorer\\");
writer.write("\r\n ");
// C:\\1.xls 要打开的Excel 文件
writer.write("iexplore.exe C:\\1.xls");
writer.write("\r\n ");
writer.write("@echo on ");
writer.close();
p = rn.exec("cmd.exe /C c:\\openexcel.bat");
}
catch (Exception e1) {
e1.printStackTrace();
}
}
}
二、bat运行java
很多朋友在WINDOWS下会用批处理去启动自己的java程序,
一般的写法是
运行class:
java xx
运行jar:
java -jar xxx.jar
但是这样运行会有一个恶心的对话框停在那直到我们关闭程序。
于是很多人说可以这样
运行class:
start javaw xx
运行jar:
start javaw -jar xxx.jar
这种方法DOS窗口还是会一闪而过,这就算解决问题了吗?!网上很多人说是的.
对我们这种追求完美的人来说闪一下还是不能接受滴.
于是终极解决方案出现了!
那就是在批处理第一行加上@echo off
这样我们的批处理就变成了
运行class:
@echo off
start javaw xx
运行jar:
@echo off
start javaw -jar xxx.jar
快试试吧,绝对不闪了。哈哈哈。
解释一下
echo off
表示在此语句后所有运行的命令都不显示命令行本身
@ 表示运行时不显示本命令行