我正在尝试使用XML与服务器通信并使用以下代码返回数据。一旦激活,代码似乎无限期地等待。程序中的其他线程仍然保持活动状态。 我之前使用simalar代码与服务器通话没有问题。任何人都可以在这看到错误吗?
final String dosCommand = "cmd /c omp -iX -u admin -w admin -h " + openvasIP + " -p " + openvasPort + " --xml=\"<get_reports report_id='" + reportID + "' format_id='a3810a62-1f62-11e1-9219-406186ea4fc5'/>\"";
final String location = "C:\\";
try {
final Process process = Runtime.getRuntime().exec(dosCommand + " " + location);
final InputStream in = process.getInputStream();
int ch;
while ((ch = in.read()) != -1) {
System.out.print((char) ch);
String taskOut = String.valueOf((char) ch);
jTextArea3.append(taskOut);
根本没有输出任何东西。不将命令输入System.out.print。
编辑:此命令旨在以TXT或PDF格式下载文件数据(现在在TXT上)。如果我从CMD运行命令并将其发送到txt文件,我得到这个 - 命令......
C:\>omp -h 192.168.0.13 -p 9390 -u admin -w admin --get-report 474b824a-79bd-419
5-98ab-80efb40faca8 --format a3810a62-1f62-11e1-9219-406186ea4fc5 > c:/book/test
er2.txt
输出......
lib xml-Message: asking for 1048576
lib xml-Message: <= <authenticate_response status="200" status_text="OK"><role
>Admin</role><timezone>UTC</timezone></authenticate_response>
lib xml-Message: asking for 1048576
lib xml-Message: <= <get_version_response status="200" status_text="OK"><versi
on>4.0</version></get_version_response>
lib xml-Message: asking for 1048576
lib xml-Message: <= <get_reports_response status="200" status_text="OK"><repor
t type="scan" id="474b824a-79bd-4195-98ab-80efb40faca8" format_id="a3810a62-1f62
-11e1-9219-406186ea4fc5" extension="txt" content_type="text/plain">SSBTdW1tYXJ5C
j09PT09PT09PQoKVGhpcyBkb2N1bWVudCByZXBvcnRzIG9uIHRoZSByZXN1bHRzIG9mIGFuIGF1dG9tY
XRpYyBzZWN1cml0eSBzY2FuLgpUaGUgcmVwb3J0IGZpcnN0IHN1bW1hcmlzZXMgdGhlIHJlc3VsdHMgZ
m91bmQuClRoZW4sIGZvciBlYWNoIGhvc3QsIHRoZSByZXBvcnQgZGVzY3JpYmVzIGV2ZXJ5IGlzc3VlI
GZvdW5kLgpQbGVhc2UgY29uc2lkZXIgdGhlIGFkdmljZSBnaXZlbiBpbiBlYWNoIGRlc2NyaXB0aW9uL
CBpbiBvcmRlciB0byByZWN0aWZ5CnRoZSBpc3N1ZS4KClZlbmRvciBzZWN1cml0eSB1cGRhdGVzIGFyZ
依旧......
所以 - 我试图以错误的方式做这件事吗?
生成的文本文件非常完美。我最喜欢jTextArea中的相同数据