怎么编程读取java程序创建的dos窗口中显示的内容

作者&投稿:麻胞 (若有异议请与网页底部的电邮联系)
Java获取DOS窗口中的内容~

String str=null;
Process process=Runtime.getRuntime().exec("你的DOS命令");
BufferedReader br=new BufferedReader(new InputStreamReader(process.getInputStream()));
while((str=br.readLine())!=null){
System.out.println(str);
}

用切图,直接套用代码会有病毒嫌疑

改写自DevPHP获取console mode的执行结果程式部分,让它能一行一行的显示。
抱歉此为Delphi版本,供您参考!

// following codes are borrowed from the source codes of DevPHP.
function getDOSOutput(Cmd, WorkDir: String): string;
var
tsi: TStartupInfo;
tpi: TProcessInformation;
nRead: DWORD;
aBuf: Array[0..101] of char;
sa: TSecurityAttributes;
hOutputReadTmp, hOutputRead, hOutputWrite, hInputWriteTmp, hInputRead,
hInputWrite, hErrorWrite: THandle;
FOutput : String;
/// added by Rich
perLine : String;
len : integer;
/// =====
begin
FOutput := '';
perLine := '';

sa.nLength := SizeOf(TSecurityAttributes);
sa.lpSecurityDescriptor := nil;
sa.bInheritHandle := True;

CreatePipe(hOutputReadTmp, hOutputWrite, @sa, 0);
DuplicateHandle(GetCurrentProcess(), hOutputWrite, GetCurrentProcess(),
@hErrorWrite, 0, true, DUPLICATE_SAME_ACCESS);
CreatePipe(hInputRead, hInputWriteTmp, @sa, 0);

DuplicateHandle(GetCurrentProcess(), hOutputReadTmp, GetCurrentProcess(),
@hOutputRead, 0, false, DUPLICATE_SAME_ACCESS);
DuplicateHandle(GetCurrentProcess(), hInputWriteTmp, GetCurrentProcess(),
@hInputWrite, 0, false, DUPLICATE_SAME_ACCESS);
CloseHandle(hOutputReadTmp);
CloseHandle(hInputWriteTmp);

FillChar(tsi, SizeOf(TStartupInfo), 0);
tsi.cb := SizeOf(TStartupInfo);
tsi.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
tsi.hStdInput := hInputRead;
tsi.hStdOutput := hOutputWrite;
tsi.hStdError := hErrorWrite;

CreateProcess(nil, PChar(Cmd), @sa, @sa, true, 0, nil, PChar(WorkDir),
tsi, tpi);
CloseHandle(hOutputWrite);
CloseHandle(hInputRead );
CloseHandle(hErrorWrite);
Application.ProcessMessages;

repeat
if (not ReadFile(hOutputRead, aBuf, 16, nRead, nil)) or (nRead = 0) then
begin
if GetLastError = ERROR_BROKEN_PIPE then Break
else MessageDlg('Pipe read error, could not execute file', mtError, [mbOK], 0);
end;
aBuf[nRead] := #0;
FOutput := FOutput + PChar(@aBuf[0]);
///// 我增加的部分
perLine := perLine + PChar(@aBuf[0]);
len := Pos(chr(10),perLine);
if ( len>0 ) then
begin
Form1.ListBox1.Items.Add(Copy(perLine,1,len-1)); // added by Rich.
perLine := Copy(perLine, len+1, Length(perLine)-len);
end;

/////
Application.ProcessMessages;
until False;

Result := FOutput;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
WorkDir : string;
begin
ListBox1.Items.Clear;
WorkDir := '.';
Memo1.Text := getDOSOutput('ping www.tnee.tnit.edu.tw', WorkDir); // OK!
end;


java播放器编程---如何读取文件名 急!!高分求!有追加!
建议把 JFileChooser 的文件选择放进主CLASS里,因为事实上读取文件不用thread。这样就可以读取filename啦!thread里的文件读取可以建立一个 constructor,然后读取另一个文件里的variable。LZ你试试吧!

怎样用JAVA编程实现读取PDF文件中的文字或英文保存到TXT文档中,不使用...
1、创建一个路径为要读取的txt文件的file对象rFile。2、创建一个路径为要写入的txt文件的file对象wFile。3、创建一个FileReader对象,传入rFile到构造器。4、准备一个char数组,FileReader类有一个继承自java.io.Reader的read(char[]cbuf)方法,将字符读入数组。5、创建一个FileWriter对象,传入wFile到...

在java编程时从文本数据流读取文件,为什么要加上throws IOException...
异常就是干这个的,防范于未然;正常的情况下,这些异常处理代码都是冗余的,但是真正上线的时候就能体现出它的好处了,当产品交于用户使用的情况下,很多情况是在开发过程中无法预料到的,就IO操作来讲,很可能发生文件不存在,等等一切可能发生的情况(具体异常分类可查阅API - IO异常以及其子类的简介)...

Java编程:字节数组输入流实现循环的读取内容
视频讲解的是Java面向对象编程语言中关于文件IO流的知识,重点讲解了ByteArrayInputStream字节数组输入流实现对循环读取。

在Java怎么开始编程?
学习java编程语言,首先要学习的是基础语法,开启Java学习的第一步,当然就是深入掌握计算机基础、编程基础语法,面向对象,集合、IO流、线程、并发、异常及网络编程,这些我们称之为JavaSE基础。当你掌握了这些内容之后,你就可以做出诸如:电脑上安装的迅雷下载软件、QQ聊天客户端、考勤管理系统等桌面端软件。 那我需要怎么...

java socket编程 readline()读取问题,为啥在client端刚连接上就开始无限...
改一下 scan.nextLine();\/\/阻塞,排除是socket建立太慢导致的 String str=null;这两行删除,没用 str=br.readLine();这个改成 br=scan.readLine();然后你再试一下 顺便再说一下,这个程序我写过,我开始想的也是客户端发送的数据服务器端可以实时接收,但是我发现我错了,因为Scanner 的阻塞,如果客户...

Java编程:使用InputStreamReader读取文件内容
详情请查看视频回答

关于在Java编程的时候如何读取一些字典文件,文件的后缀名为dict 或者...
或者直接告诉我如何读取QQ拼音里面的name.dict,用java读取,谢谢了 ggm19890303 | 浏览1472 次 |举报 我有更好的答案推荐于2017-12-15 10:20:20 最佳答案 .dic是一种词典文件格式,Dic文件由若干单词单元组成,每一个单元包含了单词与解释信息,每个单词单元以单词开始,解释结束。相邻的两个单词单元之间没有间隔(...

Java编程题:使用随机访问文件的方式实现对文件的倒序读取并输出
详情请查看视频回答

java一般用什么软件编写的?
学的话,如果你做web相关的myeclipse方便些,其他么eclipse就可以了。编程一般用什么软件?那要看你用的是什么语言,例如C我们通常使用软件是TC或者是VC来开发 如果你使用java通常使用JCreater或者是JBuilder来开发!不同的语言有不同的开发工具!vb编程一般用什么软件?一般是用MicrosoftVisualBasic6.0这是...

修武县13861686677: java编程题目!提取java源代码中的注释生成javadoc或txt文件 -
拱秀悦止: 用javadoc命令格式如下 javadoc [options] [packagenames] [sourcefile] [@files]ptions 命令行选项,如本文档中所指定.要了解 javadoc 选项的典型用法,参见实际示例.packagenames 一系列包的名字,用空格分隔,例如 java.lang java.lang....

修武县13861686677: 怎么编程读取java程序创建的dos窗口中显示的内容 -
拱秀悦止: 改写自DevPHP获取console mode的执行结果程式部分,让它能一行一行的显示.抱歉此为Delphi版本,供您参考!// following codes are borrowed from the source codes of DevPHP.function getDOSOutput(Cmd, WorkDir: String): string; var tsi: ...

修武县13861686677: java控制台程序怎样输入一个字符,而不用按回车接收? -
拱秀悦止: 1 2 3 4 5 6 7 8 9 10 11 12 13// 使用 BufferedReader 在控制台读取字符importjava.io.*;publicclassBRRead {publicstaticvoidmain(String args[]) throwsIOException {charc;// 使用 System.in 创建 BufferedReaderBufferedReader br = ...

修武县13861686677: java怎么在另一个程序里读取一个程序然后输出? -
拱秀悦止: 在一个Java程序中运行另一个Java程序,就如在Eclipse中点一下run,就可以运行当前工程下的Java程序.

修武县13861686677: shell脚本调JAVA程序,获取JAVA程序返回值并echo输出 -
拱秀悦止: 先运行java程序,然后用echo $?获取程序的运行结果,如果是字符串,可以使用 result=$(java -jar xxx.jar)来获取,当然这只是示例,$()中的命令使可以随便修改的

修武县13861686677: 在java中怎么获取输入的单个字符 -
拱秀悦止: 通过Java语言获取从键盘输入的单个字符的编程思想和方法如下:1.首先在使用Java编程时,需要先导入java工具包,这样后面才可以使用接受输入和输出的java语句.2.然后需要创建一个输入类的对象,这里类的名称命名为scan对象.3.接着定义一个s的字符串变量,接受键盘的任意字符串的输入.4.然后使用charAt()函数截取刚刚保存在s的第一个字符.需要注意的是,在java的函数中第一个游标为0.5.最后再使用java的输出语句块将结果输入即可,这样就成功获取输入的单个字符.

修武县13861686677: JAVA如何调用DOS命令 -
拱秀悦止: 下面是一种比较典型的程序模式:Process process = Runtime.getRuntime().exec(".\\p.exe");在上面的程序中,第一行的“.\\p.exe”是要执行的程序名,Runtime.getRuntime()返回当前应用程序的Runtime对象,该对象的exec()方法指...

修武县13861686677: JAVA中如何执行DOS命令 -
拱秀悦止: 1. 使用Process类操作 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.SequenceInputStream; public class Processing { ...

修武县13861686677: 如何将java程序中的文档注释提取出来生成说明文档 -
拱秀悦止: javadoc技术,是从源代码中抽取类,方法,成员等文档注释形成一个与源代码配套的API帮助文档,用一套特定的标签做注释,在编程结束后,通过javadoc.exe生成开发文档.

修武县13861686677: java编程中如何读取输入的文字 -
拱秀悦止: Scanner input=new Scanner(System.in); String s=input.nextLine(); String[] str=s.split("\\s");//以空格隔开 String name=str[0]; int score=Integer.parse(str[1]);

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网