java 运行 bat

引用: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
表示在此语句后所有运行的命令都不显示命令行本身
@ 表示运行时不显示本命令行

原文地址:https://www.cnblogs.com/sode/p/2329296.html