频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Java中运行其它程序方法的实例详解

来源:JR 作者:cherami 出处:巧巧读书 2005-11-01 进入讨论组
下一页 1 2 3 
  由于前段时间一个网友写信询问如何在运行其他可执行程序时将控制台的输入提交到它想运行的程序,由于考虑到他的特殊情况就帮他弄了一下,刚开始想着这个问题应该比较简单,但是在实际做的过程中才发现有很多陷阱,而且好像不能弄一个非常通用的东西出来。
下面的代码是我想做出的一个通用封装器的尝试:

import java.io.*;

public class CommandWrapper
{
Process process;
Thread in;
Thread out;
public CommandWrapper(Process process)
{
this.process = process;
final InputStream inputStream
= process.getInputStream();
//final BufferedReader
r=new BufferedReader
(new InputStreamReader(inputStream));
final byte[] buffer = new byte[1024];
out = new Thread()
{
//String line;
int lineNumber=0;
public void run()
{
try {
while (true)
{
int count = inputStream.read(buffer);
System.out.println
(lineNumber+":"+new String
(buffer, 0, count-1));
//line=r.readLine();
//System.out.println
(lineNumber+":"+line);
lineNumber++;
}
}
catch (Exception e)
{

}
}
};
final BufferedReader reader =
new BufferedReader
(new InputStreamReader(System.in));
final OutputStream outputStream
= process.getOutputStream();
in = new Thread()
{
String line;
public void run()
{
try {
while (true)
{
outputStream.write(
(reader.readLine()+"\n").getBytes());
outputStream.flush();
}
}
catch (Exception e)
{

}
}
};
}

public void startIn()
{
in.start();
}

public void startOut()
{
out.start();
}

public void interruptIn()
{
in.interrupt();
}

public void interruptOut()
{
out.interrupt();
}

public static void main(String[] args)
{
try
{
CommandWrapper command =
new CommandWrapper(Runtime.getRuntime().
exec("native2ascii"));
command.startIn();
command.startOut();
}
catch (Exception e) {
e.printStackTrace();
}
}

}


  我以native2ascii为范例程序和网友给我的那个程序做了对比,发现如下几个在处理这个问题时需要注意的地方:

保留:: http://www.qqread.com/java/w120280060.html 更多文章 更多内容请看Java环境安装配置Java编程开发手册Java的类专题,或进入讨论组讨论。
下一页 1 2 3 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章