A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈晓东 黑马帝   /  2011-10-5 19:48  /  2264 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Runtime类怎么执行本地的应用程序:如windows纸牌和扫雷等。最好能用代码演示一下,这个当时没搞懂。

评分

参与人数 1技术分 +1 收起 理由
admin + 1 看看大家的回答!

查看全部评分

4 个回复

倒序浏览
黑马网友  发表于 2011-10-5 20:06:33
沙发
[code]//额,这个打开记事本的,想打开纸牌和扫雷等,XP系统的我没试过,但是
//在WIN7里把notepad换成纸牌就可以
//最后在main方法里执行
Runtime r = Runtime.getRuntime();
r.exec("notepad");[/code]
回复 使用道具 举报
import java.io.IOException;


public class Demo_1 {

        /**
         * @param args
         */
        public static void main(String[] args) {
        Runtime r=Runtime.getRuntime();
        try {
                r.exec("winmine.exe");
        } catch (IOException e) {
                e.printStackTrace();
        }

        }

}
这是我在myeclipse中运行了没问题的
[ 本帖最后由 姚志华 于 2011-10-05  20:44 编辑 ]

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
  1. public Process exec(String command);   
  2. public Process exec(String [] cmdArray);   
  3. public Process exec(String command, String [] envp);   
  4. public Process exec(String [] cmdArray, String [] envp);
复制代码
exec 有这四种重载版本。这四种重载方法分别都是什么意思,又如何使用、?
回复 使用道具 举报
exec
public Process exec(String command)
             throws IOException在单独的进程中执行指定的字符串命令。
这是一个很有用的方法。对于 exec(command) 形式的调用而言,其行为与调用 exec(command, null, null) 完全相同。


参数:
command - 一条指定的系统命令。
返回:
一个新的 Process 对象,用于管理子进程
抛出:
SecurityException - 如果安全管理器存在,并且其 checkExec 方法不允许创建子进程
IOException - 如果发生 I/O 错误
NullPointerException - 如果 command 为 null
IllegalArgumentException - 如果 command 为空
另请参见:
exec(String[], String[], File), ProcessBuilder

--------------------------------------------------------------------------------

exec
public Process exec(String command,
                    String[] envp)
             throws IOException在指定环境的单独进程中执行指定的字符串命令。
这是一个很有用的方法。对于 exec(command, envp) 形式的调用而言,其行为与调用 exec(command, envp, null) 完全相同。


参数:
command - 一条指定的系统命令。
envp - 字符串数组,其中每个元素的环境变量的设置格式为 name=value;如果子进程应该继承当前进程的环境,或该参数为 null。
返回:
一个新的 Process 对象,用于管理子进程
抛出:
SecurityException - 如果安全管理器存在,并且其 checkExec 方法不允许创建子进程
IOException - 如果发生 I/O 错误
NullPointerException - 如果 command 为 null,或 envp 的元素之一为 null
IllegalArgumentException - 如果 command 为空
另请参见:
exec(String[], String[], File), ProcessBuilder

--------------------------------------------------------------------------------

exec
public Process exec(String command,
                    String[] envp,
                    File dir)
             throws IOException在有指定环境和工作目录的独立进程中执行指定的字符串命令。
这是一个很有用的方法。对于 exec(command, envp, dir) 形式的调用而言,其行为与调用 exec(cmdarray, envp, dir) 完全相同,其中 cmdarray 是 command 中所有标记的数组。

更准确地说,可以使用通过调用 new StringTokenizer(command) 创建的 StringTokenizer 将 command 字符串拆解成标记,调用时不对字符类别做进一步的修改。然后将标记生成器所生成的标记以相同的顺序放入新的字符串数组 cmdarray 中。


参数:
command - 一条指定的系统命令。
envp - 字符串数组,其中每个元素的环境变量的设置格式为 name=value;如果子进程应该继承当前进程的环境,或该参数为 null。
dir - 子进程的工作目录;如果子进程应该继承当前进程的工作目录,则该参数为 null。
返回:
一个新的 Process 对象,用于管理子进程
抛出:
SecurityException - 如果安全管理器存在,并且其 checkExec 方法不允许创建子进程
IOException - 如果发生 I/O 错误
NullPointerException - 如果 command 为 null,或者 envp 的某个元素为 null
IllegalArgumentException - 如果 command 为空
从以下版本开始:
1.3
另请参见:
ProcessBuilder

--------------------------------------------------------------------------------

exec
public Process exec(String[] cmdarray)
             throws IOException在单独的进程中执行指定命令和变量。
这是一个很有用的方法。对于 exec(cmdarray) 形式的调用而言,其行为与调用 exec(cmdarray, null, null) 完全相同。


参数:
cmdarray - 包含所调用命令及其参数的数组。
返回:
一个新的 Process 对象,用于管理子进程
抛出:
SecurityException - 如果安全管理器存在,并且其 checkExec 方法不允许创建子进程
IOException - 如果发生 I/O 错误
NullPointerException - 如果 cmdarray 为 null,或者 cmdarray 的某个元素为 null
IndexOutOfBoundsException - 如果 cmdarray 是一个空数组(长度为 0)
另请参见:
ProcessBuilder

--------------------------------------------------------------------------------

exec
public Process exec(String[] cmdarray,
                    String[] envp)
             throws IOException在指定环境的独立进程中执行指定命令和变量。
这是一个很有用的方法。对于 exec(cmdarray, envp) 形式的调用而言,其行为与调用 exec(cmdarray, envp, null) 完全相同。


参数:
cmdarray - 包含所调用命令及其参数的数组。
envp - 字符串数组,其中每个元素的环境变量的设置格式为 name=value;如果子进程应该继承当前进程的环境,或该参数为 null。
返回:
一个新的 Process 对象,用于管理子进程
抛出:
SecurityException - 如果安全管理器存在,并且其 checkExec 方法不允许创建子进程
IOException - 如果发生 I/O 错误
NullPointerException - 如果 cmdarray 为 null,或者 cmdarray 的某个元素为 null,或者 envp 的某个元素为 null
IndexOutOfBoundsException - 如果 cmdarray 是一个空数组(长度为 0)
另请参见:
ProcessBuilder

--------------------------------------------------------------------------------

exec
public Process exec(String[] cmdarray,
                    String[] envp,
                    File dir)
             throws IOException在指定环境和工作目录的独立进程中执行指定的命令和变量。
给定的字符串数组 cmdarray 表示一个命令行标记,字符串数组 envp 则表示“环境”变量设置,此方法会创建一个新进程,而指定的命令就在这个进程中执行。

此方法检查 cmdarray 是否是一条有效的操作系统命令。哪些命令有效取决于系统,但是该命令至少必须有一个非 null 字符串的非空列表。

如果 envp 为 null,那么子进程会继承当前进程的环境设置。

ProcessBuilder.start() 现在是启用一个具有已修改环境的进程的首选方法。

dir 指定了新子进程的工作目录。如果 dir 为 null,那么子进程会继承当前进程的当前工作目录。

如果安全管理器存在,则用数组 cmdarray 的第一个元素作为变量来调用安全管理器的 checkExec 方法。这可能导致抛出 SecurityException。

启动操作系统进程的方式完全取决于系统。其中有很多方面会导致错误:

未找到操作系统程序文件。
对程序文件的访问被拒绝。
工作目录不存在。
这些情况都会抛出一个异常。该异常的具体特性取决于系统,但它总是 IOException 的一个子类。


参数:
cmdarray - 包含所调用命令及其参数的数组。
envp - 字符串数组,其中每个元素的环境变量的设置格式为 name=value,如果子进程应该继承当前进程的环境,或该参数为 null。
dir - 子进程的工作目录;如果子进程应该继承当前进程的工作目录,则该参数为 null。
返回:
一个新的 Process 对象,用于管理子进程
抛出:
SecurityException - 如果安全管理器存在,并且其 checkExec 方法不允许创建子进程
IOException - 如果发生 I/O 错误
NullPointerException - 如果 cmdarray 为 null,或者 cmdarray 的某个元素为 null,抑或 envp 的某个元素为 null
IndexOutOfBoundsException - 如果 cmdarray 是一个空数组(长度为 0)

评分

参与人数 1技术分 +2 黑马币 +4 收起 理由
admin + 2 + 4 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马