- 浏览: 197470 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
hankcs:
专门登陆来评论,这篇文章真差劲!
JAVA中assert使用[转] -
loyy77:
zengbin163 写道你上面的代码我执行时没有问题的我的J ...
JAVA中assert使用[转] -
guji528:
负数左移操作导致溢出现象:
byte b = -15; //负 ...
二进制、八进制、十六进制[转] -
guji528:
解说得很详细:
调试FileInputStream.read( ...
二进制、八进制、十六进制[转] -
m_desire2010:
非常清晰的思路!支持楼主!
斐波那契数(JAVA实现)
碰到一个项目需要从Java中运行Perl程序,这个Perl程序调用客户的Web service,每次发送一个请求,接受一个响应。Java程序中包含多个请求,需要多次调用Perl程序,并且接受和解析响应(这个烂设计可不是我干的,我实在不明白强大的Java Web Service为什么要弄成这样,不过客户是老大)。使用Java Runtime的exec()方法,发现运行一段时间后,进程就被挂起了(之前的响应完全正确)。于是分析原因,发现我在运行exec()方法后,立刻执行了Process的waitFor()方法,这里出了问题。在网上找到一篇文章讲述这个问题: 地址:http://brian.pontarelli.com/2005/11/11/java-runtime-exec-can-hang/ Java Runtime exec can hangNovember 11, 2005 on 4:40 pm | In Java |The next version of Savant is going to focus heavily on the stand-alone runtime and support for dialects and plugins. Supporting all that is largely handled by using a simple executor framework I wrote around Java 1.4 and lower’s Runtime.exec method. A few things to keep in mind when using this:
|
正好解决了我心中的疑问,非常感谢!
我们的程序一开始就是exec完了接着waitFor(),但bat文件执行不完整:
Process proc = Runtime.getRuntime().exec(cmd);
proc.waitFor();
后面的build中在waitFor()之前读取了数据流,bat文件就可以完整执行了:
Process proc = Runtime.getRuntime().exec(cmd);
StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(), "Error");
StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "Output");
errorGobbler.start();
outputGobbler.start();
proc.waitFor();
class StreamGobbler extends Thread {
InputStream is;
String type;
StreamGobbler(InputStream is, String type) {
this.is = is;
this.type = type;
}
public void run() {
try {
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
if (type.equals("Error"))
LogManager.logError(line);
else
LogManager.logDebug(line);
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
TestPrint.bat:
echo P1=%1 >D:\2.1.2env\2.1.2home\CompuSet\output\TestPrint.log
echo P2=%2 >>D:\2.1.2env\2.1.2home\CompuSet\output\TestPrint.log
echo P3=%3 >>D:\2.1.2env\2.1.2home\CompuSet\output\TestPrint.log
echo P4=%4 >>D:\2.1.2env\2.1.2home\CompuSet\output\TestPrint.log
echo P5=%5 >>D:\2.1.2env\2.1.2home\CompuSet\output\TestPrint.log
echo P6=%6 >>D:\2.1.2env\2.1.2home\CompuSet\output\TestPrint.log
Bad_TestPrint.log:
P1=C:\xPression\CompuSet\output\MartyTestOut1.afp
P2=Literal1
P3="Rick Skinner"
P4=Parameter3
Good_TestPrint.log
P1=C:\xPression\CompuSet\output\MartyTestOut1.afp
P2=Literal1
P3="Rick Skinner"
P4=Parameter3
P5=Parameter4
P6=Parameter5
评论
发表评论
-
window.open()的所有参数列表
2009-04-08 16:32 1243前言:经常上网的朋友可能会到过这样一些网站, ... -
JAVA如何调用DOS命令
2008-10-06 22:04 1538用Java编写应用时,有时需要在程序中调用另一个现成的可执行程 ... -
一个字符串中如何得到汉字的个数?
2008-09-11 18:06 2356最近碰到了一面试题:一个字符串中如何得到汉字的个数?比如&qu ... -
一道面试题
2007-08-02 20:35 1001We are hiring intermediate or e ... -
DOUBLE值四舍五入
2007-08-02 20:29 2136API里没有现成的方法 public static ... -
斐波那契数(JAVA实现)
2007-07-15 13:26 16508求Fibonacci数列的前20个数。该数列有如下特点: 第1 ... -
如何得到一个字符串中汉字的个数?
2007-07-08 11:47 3172最近碰到了一面试题:一个字符串中如何得到汉字的个数?比如& ... -
JAVA转义符
2007-06-28 17:45 24354转义序列 含义 \n 回车(\u000a) \t 水平制表 ... -
防止重复提交
2007-06-25 14:34 1324//prevent to submit repeatedly ... -
JavaBean的属性[转]
2007-06-01 10:37 1475JavaBean的属性与一般Java程序中所指的属性,或者说与 ... -
JavaScript中数字的比较
2007-05-23 18:38 3664错误代码: js 代码 ... -
正则表达式大全(regular expression)[转]
2007-05-23 11:37 4713前言 正则表达式是烦琐的,但是强大的,学会之后的应用会让你除了 ... -
二进制、八进制、十六进制[转]
2007-05-16 22:25 7701这是一节“前不着村 ... -
JSP 分页显示[转]
2007-05-14 10:26 3072java 代码 <%@ page cont ... -
Re: Runtime.exec()的使用
2007-05-11 15:10 1612问:为什么Runtime.exec("ls" ... -
抽象类和接口的区别
2007-05-11 14:56 6163抽象类和接口在语法和 ... -
关于java异常处理机制的深入理解[转自编程爱好者]
2007-05-07 17:30 23201 引子 try…catch…finally ... -
JAVA中assert使用[转]
2007-05-07 16:52 21828assert是在J2SE1.4中引入的新特性,assertio ... -
refactoring 1
2007-04-25 16:45 15431,Although the condition " ... -
精妙SQL
2007-04-24 14:39 3649下列语句部分是Mssql语 ...
相关推荐
JRE 1.4.2 JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
JRE1.8.0(Java Runtime Environment)——Java运行环境32bit
JRE(Java Runtime Environment)——windows Java运行环境 64bit
Java Runtime Environment-6.0.26.exe
Java Runtime Environment 1.6.0.7 (32-bit
Java Runtime For MacOS X 10.7
java runtime environment 1.8.0_45 64bit.rar
java runtime environment 1.8.0_45 64bit jre1.8.0_45 64bit jre-8u261
jre(Java Runtime Environment),Java运行环境64位安装包
Java SE Runtime Environment(运行时环境)包含了运行以 Java 编程语言编写的程序所必需的 Java 虚拟机、运行时类库和 Java 应用程序启动器。 Java 平台的安全性 一个由角色提供的安全信息的描述。适用于开发人员...
毕业时的外文翻译原文 A Race-Aware Java Runtime
Java SE Runtime Environment(运行时环境)包含了运行以 Java 编程语言编写的程序所必需的 Java 虚拟机、运行时类库和 Java 应用程序启动器。 Java 平台的安全性 一个由角色提供的安全信息的描述。适用于开发人员...
jre(Java Runtime Environment),Java运行环境32位安装包
Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序...
java runtime environment(JRE)安装 2020-11-4 一、搭建环境 1.1 安装Keil 5 官网下载:http://www2.keil.com/mdk5/ 百度网盘:https://pan.baidu.com/s/18t_ta0WWX_f1KCKXfgj_Zw 提取码:gx3r 1.2 安装JRE 由于...
ArcGIS Runtime SDK for Java 100.12.0 的...如需在生产环境中使用ArcGIS Runtime SDK for Java,请联系ESRI公司获得授权,现在也有国产替代产品GeoScne Runtime SDK for Java,可以联系易智瑞公司获得相关资源和授权。
Java Runtime Environment-6.0.450
Installation notes for the J2SE Runtime Environment 5.0 (JRE), including system requirements and installation instructions, are available for the following platforms. Platform 32-bit Installation 64...
Java Runtime Environment,Java运行环境64位安装包,官网下载。 Java SE Runtime Environment 8 Downloads Do you want to run Java™ programs, or do you want to develop Java programs? If you want to run ...
java 环境