您的位置:首页 > 编程语言 > Java开发

JAVA 和 C# 调用外部.exe文件,传值并等等exe完成,获取返回值

2016-07-28 17:12 666 查看
JAVA-

String ykexe = getProperty("ykexe") + " " + tableout;   //getproperty("ykexe") 路径   tableout 参数,多个参数用空格隔开
StringBuilder infoMsg = new StringBuilder();
StringBuilder errorMsg = new StringBuilder();
String line = null;
while (true) {
Runtime rn = Runtime.getRuntime();
Process p = null;
try {
p = rn.exec(ykexe);
try {
p.waitFor();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BufferedReader info = new BufferedReader(new InputStreamReader(
p.getInputStream()));
BufferedReader error = new BufferedReader(
new InputStreamReader(p.getErrorStream()));
while ((line = info.readLine()) != null) {
infoMsg.append(line).append("\n");
}
while ((line = error.readLine()) != null) {
errorMsg.append(line).append("\n");
}
if (infoMsg.toString().contains("OK")) {
return true;
} else {
System.out.println(errorMsg.toString());
return false;
}
} catch (IOException e) {
// TODO Auto-generated catch block
// p.destroy();
e.printStackTrace();
return false;
}


  C#

string path = @"C:\GateWay\PrjCheck.exe";
string fileName = path;
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = fileName;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.Arguments = "IHSUSAA_1508211711";//参数以空格分隔,如果某个参数为空,可以传入””
p.Start();
p.WaitForExit();
//此处可以返回一个字符串,此例是返回压缩成功之后的一个文件路径
string output = p.StandardOutput.ReadToEnd();


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: