`

Java调用批处理和Java打开DOS窗口

    博客分类:
  • Java
阅读更多

Java调用批处理:

import java.io.*;

public class Test{
	public static void main(String[] args){
		try {
			//执行批处理文件
			Process process = Runtime.getRuntime().exec("文件路径");
			
			//取得命令结果的输出流
			InputStream fis = process.getInputStream();
			//用一个读输出流类去读
			BufferedReader br = new BufferedReader(new InputStreamReader(fis));
			String line = null;
			//逐行读取输出到控制台
			while ((line = br.readLine()) != null) {
				   System.out.println(line);
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

 Java打开DOS窗口:

public class Test{
	public static void main(String[] args){
		try {
			Process process = Runtime.getRuntime().exec("cmd  start ");	
		}catch(Exception e){
			e.printStackTrace();
		}
}

 另附start参数说明:

 

 

START   ["title"]   [/Dpath]   [/I]   [/MIN]   [/MAX]   [/SEPARATE   |   /SHARED]  
              [/LOW   |   /NORMAL   |   /HIGH   |   /REALTIME   |   /ABOVENORMAL   |   /BELOWNORMAL]  
              [/WAIT]   [/B]   [command/program]  
              [parameters]  
   
          "title"           在窗口标题栏中显示的标题。  
          path                 起始目录  
          B                       在不创建新窗口的情况下开始应用程序。   除非  
                                  启动   ^C   处理,否则该应用程序会忽略   ^C   处理;  
                                    ^Break   是唯一可以中断该应用程序的方式  
          I                       新环境是传递给   cmd.exe   的原始环境,  
                                  而不是当前环境  
          MIN                   开始时窗口最小化  
          MAX                   开始时窗口最大化  
          SEPARATE         在分开的空间内开始   16   位   Windows   程序  
          SHARED             在分共享的空间内开始   16   位   Windows   程序  
          LOW                   在   IDLE   优先级类别开始应用程序  
          NORMAL             在   NORMAL   优先级类别开始应用程序  
          HIGH                 在   HIGH   优先级类别开始应用程序  
          REALTIME         在   REALTIME   优先级类别开始应用程序  
          ABOVENORMAL   在   ABOVENORMAL   优先级类别开始应用程序  
          BELOWNORMAL   在   BELOWNORMAL   优先级类别开始应用程序  
          WAIT                 启动应用程序并等候它结束  
          command/program  
                                  如果是内部   cmd   命令或批文件,那么该命令处理器是  
                                  用   /K   命令行开关运行   cmd.exe   的。这表示该窗口在命令运行  
                                  后仍然存在。  
   
                                  如果不是内部   cmd   命令或批文件,则是一个程序,并  
                                  作为窗口应用程序或控制台应用程序运行。  
   
          parameters     这些为传送到命令/程序的参数  
   
   
  如果命令扩展名被启用,通过命令行或   START   命令的外部命令  
  调用会如下改变:  
   
  将文件名作为命令键入,非可执行文件可以通过文件关联调用。(例如,   WORD.DOC   会调用跟   .DOC   文件扩展名关联的应用程序)。关于如何从命令脚本内部创建这些关联,请参阅   ASSOC 和 FTYPE   命令。  
   
  执行的应用程序是   32-位   GUI   应用程序时,CMD.EXE   不等应用程序终止就返回命令提示。如果在命令脚本内执行,该新行为则不会发生。  

  如果执行的命令行的第一个符号是不带扩展名或路径修饰符的   字符串   "CMD","CMD"   会被COMSPEC   变量的数值所替换。这防止从当前目录抓出   CMD.EXE。 

  如果执行的命令行的第一个符号没有扩展名,CMD.EXE   会使用PATHEXT   环境变量的数值来决定要以什么顺序寻找哪些扩展名。PATHEXT   变量的默认值是: COM;.EXE;.BAT;.CMD  
  请注意,该语法跟   PATH   变量的一样,分号隔开不同的元素。
  查找可执行文件时,如果没有相配的扩展名,看一看该名称是否与目录名相配。如果确实如此,START   会在那个路径上调用Explorer。如果从命令行执行,则等同于对那个路径作   CD   /D。

分享到:
评论
1 楼 xiaoqing20 2010-01-14  
已阅,感谢分享。

相关推荐

Global site tag (gtag.js) - Google Analytics