`
sealbird
  • 浏览: 584551 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于java Runtime.getRunTime.exec(String command)的使用

    博客分类:
  • JAVA
 
阅读更多
2008-09-26 19:44当要调用一个外部程序的时候,java提供了exec方法,具体用法是:Runtime.getRunTime.exec("cmd /C Start mailto: abc@xxx.com").其中cmd /c是调用cmd下的start命令,它相当于对一个文件双击。也可以用Runtime.getRunTime.exec("c:\\EXCEl.exe d:\\a.xls")来打开D盘下的excel文件.


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public   class   test   {

/** 
   *   @param   args 
   */ 
public   static   void   main(String[]   args)   { 
//    TODO   Auto-generated   method   stub 
Runtime rn=Runtime.getRuntime(); 
Process p= null; 
try { 
//p = rn.exec( "cmd   /k   dir "); 
   p = rn.exec( "C:\\Windows\\system32\\notepad.exe f:\\gg.txt"); 

InputStream   in   =p.getInputStream(); 
BufferedReader   br   =   new   BufferedReader(new   InputStreamReader(in)); 
String   str   =   null; 
while((str=br.readLine())!= null){ 
System.out.println(str); 
} 
br.close(); 
}   catch   (Exception   e)   { 
System.out.println( "Error   exec   notepad "); 
} 
} 
}


/*
public class Test {

/**
* @param args
* @throws IOException 
* @throws InterruptedException 
*/
/*public static void main(String[] args) throws IOException, InterruptedException 
{
   // TODO 自动生成方法存根
   Process process = Runtime.getRuntime().exec("C:\\Program Files\\Microsoft Office\\Office12\\winword.exe f:\\gg.docx"); 
   //process.waitFor( );cmd /c java f:\\T
   /*String ls_1; 
   Process process = Runtime.getRuntime().exec("cmd /c dir \\windows"); 
   BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
   while ( (ls_1=bufferedReader.readLine()) != null) 
   System.out.println(ls_1); */
   //C:\\Program Files\\Microsoft Office\\Office12\\winword.exe
//   C:\Program Files\Microsoft Office\Office12\winword.exe
/*  
   process.waitFor( ); 
   //process.destroy();

}

}*/

Process process = Runtime.getRuntime().exec("cmd /c del f:\\aaa.doc"); 

这样的调用是没有问题~


真正最正确的用BAT运行JAVA不显示DOS窗口(连闪一下都不闪) 

今天写一个独立于RCP项目之外的SWT小工具,需要用批处理启动,偶写了一个批处理没闪DOS窗口,看得同事一愣一愣的。于是赶快把自己当年一点心得和大家分享下。


很多朋友在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

表示在此语句后所有运行的命令都不显示命令行本身 

@ 表示运行时不显示本命令行


public class TestCmd { 
public TestCmd() { 
} 

public static void main(String args[]) { 
try { 

// 登网站 
Process process = Runtime.getRuntime().exec( 
"cmd.exe /c start http://www.hao123.net/"); 

// 使用用Ping命令 

Process ee = Runtime.getRuntime().exec( 
"cmd.exe /c start ping 10.5.2.19"); 

} catch (Exception e) { 
e.printStackTrace(); 
} 
} 
} 

运行这个类你会看到效果 
这个是运行了ping命令 


我使用Process pc = Runtime.getRuntime().exec("cmd /c ping 127.0.0.1");可以成功
 
分享到:
评论
2 楼 terry07 2014-09-02  
java 7 用这个就可以了
Desktop desktop = Desktop.getDesktop();
desktop.open(new File(目标文件));
1 楼 dicolar 2011-12-16  
public static void openFile(String filePath) throws IOException {
Runtime.getRuntime().exec("rundll32 url.dll FileProtocolHandler " + filePath);
}
打开文件就这么用 没这么麻烦吧?

相关推荐

    Runtime 执行bat

    Process process = Runtime.getRuntime().exec(command); // 处理子进程的输入、输出和错误流,以避免阻塞 } catch (IOException e) { e.printStackTrace(); } ``` 这里的`"cmd.exe"`是Windows系统的命令解释...

    使用runtime实现linux命令行或shell脚本多次调用

    `Runtime.exec(String command)`方法用于执行单个命令,而如果需要执行包含多个命令的shell脚本,可以使用`Runtime.exec(String[] cmdArray)`,其中cmdArray是一个包含命令及其参数的字符串数组。 下面是一个简单的...

    java执行可执行文件,Runtime.exec、ProcessBuilder、commons-exec

    i < command.length; i++) { cmdLine.addArgument(command[i]); } DefaultExecutor executor = new DefaultExecutor(); executor.setStreamHandler(new PumpStreamHandler(System.out, System.err)); try { ...

    java修改文件属性

    - 使用`Runtime.getRuntime().exec()`可能会导致安全问题,尤其是在处理用户输入的情况下,因此应当谨慎使用。 - 对于Windows平台,使用`attrib`命令时,确保路径中包含的空格被正确引用,避免命令执行错误。 - 在...

    安卓程序发送linux指令.zip

    `Runtime.getRuntime().exec()` 方法是Java中用于执行外部命令的一个关键接口,它允许Android应用在运行时执行shell命令。在"安卓程序发送linux指令.zip"这个压缩包中,我们重点关注的是如何使用Java在Android应用中...

    java系统命令调用

    本文将详细介绍如何使用Java Runtime类中的`getRuntime().exec()`方法来调用系统命令,并提供一些实际应用场景的例子。 ### Java Runtime.getRuntime().exec() `java.lang.Runtime`类提供了运行时系统的表示形式,...

    Android程序中(APK程序)执行Adb shell 命令

    Process process = Runtime.getRuntime().exec("su -c adb shell command"); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = ...

    Java如何调用可执行文件和批处理命令.doc

    在Java 6及更高版本中,可以直接使用`Runtime.getRuntime().exec()`或者`ProcessBuilder`类来调用命令行工具。例如,要获取系统中的进程列表,可以使用Windows的`wmic`命令: ```java public class TestRunCmd { ...

    编程语言java批处理.pdf

    特别地,文档中提到了`Runtime.getRuntime().exec(String command)`方法,这是执行系统命令的常用方式。例如: ```java Process process = Runtime.getRuntime().exec("p.exe"); ``` 上述代码执行了名为`p.exe`的...

    深入研究java.lang.Runtime类.doc

    8. exec(String command, String[] envp, File dir):在有指定环境和工作目录的独立进程中执行指定的字符串命令。 9. exit(int status):通过启动虚拟机的关闭序列,终止当前正在运行的 Java 虚拟机。 10. free...

    android apk获取root权限方法总结

    在 Java 中,我们可以使用 Runtime.getRuntime().exec(String command) 函数来执行 su 命令。这个函数可以访问底层 Linux 下的程序或脚本,使 APK 具有 Root 权限,能够访问系统中需要 Root 权限才能执行的程序或...

    java 使用dos命令详解

    其中,`Runtime.getRuntime().exec(command)`是执行外部程序的主要方法,它可以创建一个新进程并返回一个`Process`对象,用于控制该进程或获取其输入/输出流。 ##### 示例1:执行简单的DOS命令 ```java Process ...

    JAVA如何调用DOS命令.doc

    - **使用命令解释器**:在Windows平台上,可以通过指定命令解释器(`cmd.exe`或`command.exe`)来执行内部命令。示例代码如下: ```java Runtime.getRuntime().exec("cmd.exe /c dir"); ``` 其中,`/c`标志表示...

    java执行可执行文件或批处理

    `Runtime.getRuntime()`方法用于获取当前Java应用程序的运行时对象,通过这个对象可以调用`exec()`方法来启动一个新的进程。 #### exec()方法详解 `exec()`方法是`Runtime`类中的一个重要成员,它用于启动一个新...

    Java通过进程名称杀进程

    - `Runtime.getRuntime()`:获取当前Java应用程序的`Runtime`对象,这是Java应用程序与操作系统交互的主要接口之一。 - `rt.exec()`:使用`exec`方法执行外部命令。这里通过`cmd.exe`调用`wmic`命令,传入参数`...

    Java调用应用程序和Dos中的命令

    1. **基本形式**:`Process p = Runtime.getRuntime().exec(command);` - `command`:一个包含要执行的命令的字符串。 - 返回值:`Process`对象,用于控制新进程和获取结果。 2. **带参数形式**:`Process p = ...

    Java调用批处理示例

    Java提供了多种方法来调用外部命令,其中一种常用的方式就是通过`Runtime.getRuntime().exec()`方法来执行批处理文件。 #### 二、Java调用批处理的基本语法 Java中调用批处理的基本语法如下: ```java Process ...

    java调用播放器

    ### Java调用播放器知识点详解 #### 一、概述 ...通过上述内容,我们可以了解到如何在Java中使用`Runtime.exec()`方法来调用播放器以及执行其他系统命令。这对于开发具有多媒体功能的应用程序非常有用。

    JAVA-DOS-command.rar_DOS java_dos command_java dos_shelf

    这个主题,"JAVA-DOS-command.rar_DOS java_dos command_java dos_shelf" 就是关于如何在Java中调用DOS命令的实践指南。下面我们将详细探讨这一关键知识点。 1. **Runtime类与Process类**: Java的`java.lang....

    Java调用Shell命令的方法

    首先,Java通过`Runtime.getRuntime().exec()`方法来执行外部命令,包括Shell命令。这个方法接受一个字符串数组作为参数,其中第一个元素是Shell解释器的路径(通常是`/bin/sh`),第二个元素是`-c`,表示接下来的...

Global site tag (gtag.js) - Google Analytics