引言:
最近两次被网友问到,关于java运行dos命令的问题。一个是问能不能,一个是反映他写的程序执行结束后runtime.exec()才会被执行到。类似的这类被主线程策略影响的问题都可以果断往线程上想。
正文:
话不多说,直接上代码。
/*
* Copyright (c) 2010 CCX(China) Co.,Ltd. All Rights Reserved.
*
* This software is the confidential and proprietary information of
* CCX(China) Co.,Ltd. ("Confidential Information").
* It may not be copied or reproduced in any manner without the express
* written permission of CCX(China) Co.,Ltd.
*
* Author: 赵宁勃
* Date: 2012-6-6
*/
package com.number.demo.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class TestRuntimeExec {
public static void main(String[] args) {
// 线程里执行command命令
Thread t = new Thread() {
@Override
public void run() {
try {
Process process = Runtime.getRuntime().exec("cmd /c dir");
InputStream in = process.getInputStream();
BufferedReader inr = new BufferedReader(
new InputStreamReader(in, "GBK"));
String line = null;
while ((line = inr.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
};
t.start();
try {
// (1)让主线程让一次CPU时间
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 主线程继续做自己的事
for (int i = 0; i < 50; i++) {
System.out.println("" + i);
}
}
}
/*
驱动器 D 中的卷是 D
卷的序列号是 CCD7-1C62
D:\workspace\tmp 的目录
2012-05-25 14:59 <DIR> .
2012-05-25 14:59 <DIR> ..
2012-05-25 14:59 659 .classpath
2012-05-25 09:24 379 .project
2012-05-25 09:24 <DIR> .settings
2012-05-25 15:05 <DIR> bin
2012-05-25 11:26 <DIR> lib
2012-05-25 15:03 <DIR> src
2012-06-04 16:42 <DIR> test
2 个文件 1,038 字节
7 个目录 134,112,276,480 可用字节
0
1
2
3
4
5
*/
这段就是runtime.exec(COMMAND)的一个例子。第2位仁兄,问到的问题,解决办法就在代码注释“(1)”处——让主线程让一次CPU时间。
这个跟JVM有关,简单地说,有个规则——thread.start()调用后,thread的run()不会被立即执行,而是通知JVM我thread可以执行了,进入等待状态了。
分享到:
相关推荐
java执行DOS的内部命令,执行DOS可执行程序。
一个Java执行DOS命令的类!极其简单!一个Java执行DOS命令的类!极其简单!
java调用DOS命令java调用DOS命令java调用DOS命令java调用DOS命令
java 使用dos命令详解 java 使用dos命令详解
NULL 博文链接:https://leiwuluan.iteye.com/blog/364576
通过java执行底层dos命令,不是很全但是可以参考!
运行Dos命令执行Java -jar xxx.jar时,输出内容可见。可自定义运行Dos命令,运行后自动最小化右下角到任务栏,关闭时要确认,也可要求设置密码才可退出。 执行说明: 在config.dt文件中配置,cmdLine=E:\Java2\...
NULL 博文链接:https://lengyue.iteye.com/blog/416004
DOS命令大全DOS命令大全DOS命令大全DOS命令大全DOS命令大全DOS命令大全DOS命令大全DOS命令大全DOS命令大全DOS命令大全DOS命令大全DOS命令大全DOS命令大全DOS命令大全DOS命令大全DOS命令大全DOS命令大全DOS命令大全...
JAVA如何调用DOS命令.doc
dos命令测试java jar文件 命令行下运行JUnit测试 命令运行java
JAVA调用DOS命令.pdf
用c#执行dos命令,dos命令输入框在屏幕右下角,执行的内容显示在桌面上,里面包含dos命令运行函数以及按键控制。
在学习JAVA时经常要用的一些DOS命令 很有用的
DOS命令集 DOS命令集 DOS命令集 DOS命令集 DOS命令集 DOS命令集
DOs 命令大全,DOs 命令大全DOs 命令大全DOs 命令大全DOs 命令大全DOs 命令大全DOs 命令大全DOs 命令大全DOs 命令大全DOs 命令大全DOs 命令大全DOs 命令大全DOs 命令大全
DOS批处理高级教程精选DOS命令使用方法DOS命令详解共66页.pdf.zip
JAVA如何调用DOS命令JAVA如何调用DOS命令JAVA如何调用DOS命令
易语言源码运行DOS系列命令.rar 易语言源码运行DOS系列命令.rar 易语言源码运行DOS系列命令.rar 易语言源码运行DOS系列命令.rar 易语言源码运行DOS系列命令.rar 易语言源码运行DOS系列命令.rar