java调用外部程序时如何传参 请问,java调用外部程序是怎么传参数?谢谢…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 外部程序?比如?如果是cmd 的话cmd /c dir c:作为命令传过去notepad.exe c:/t.txt try { Process proc = Runtime.getRuntime().exec("***"); int i = proc.waitFor(); System.out.println(i); }catch(Exception e){ ... } ... String path = "C:/报表_20040504.xls"; try { //相当于window的"开始"->"运行"的效果 Runtime.getRuntime().exec("cmd /c start " + path); } catch (IOException e) { e.printStackTrace(); }try ...{ //just for window String[] command = new String[] ...{"cmd.exe", "/c", "copy", filePath, "FSOBACK"}; Process p = Runtime.getRuntime().exec(command); p.waitFor(); } catch(Exception ex) ...{ ex.printStackTrace(); } Runtime.getRuntime().exec()中的参数,可是一个命令的字符串,如:"cmd.exe /c copy c:\\aaa.txt d:\bbb.txt" 如果是执行一个单独的程序,不带参数,可以 "haha.exe",同样,执行带参数的命令不能直接写命令。而要把程序也写上,如cmd.exe 如果有多个参数也可以写到一个数组中。要注意cmd.exe 与 /c 要当成两个参数来写,而不能写成: new String[] {"cmd.exe /c", "copy", filePath, "FSOBACK"}; Runtime执行时,被执行的程序相当于子进程。可以返回子进程Process对象 p.waitFor()是指子进程执行完成后,再执行后面的程序。比如把文件copy到别处,再重写文件,如果不用waitFor(),不有可能文件还没有拷贝就已经更新了。拷贝的是更新过的文件。而不能达到备份的效果。 不行啊,我这里要传参的是通过java调用外部的一个报表,然后要从中传参,应该怎么做?谢谢! 关键是看你的那个报表程序是怎么用cmd打开的,如果能通过命令行的方式,传参数给报表,那就runtime才能做到穿参 意思就是,用java写的一个程序涉及到报表,而java自己没有什么好的报表,所以就从网上下载一个方便的报表,然后,java程序去调用它。现在已经实现了,逐步传参,就可以的。呵呵……谢谢啦! 路过的,帮帮我。 怎样用for循环实现以下输出 谢谢 如何把一个InputStream对象中字符串和二进制分开读出来!!! 我一直都很迷糊i++和++i,以及i--和--i 请问使用java中的那个包,里面的class,请问在哪有可以找到源码? 网络编程 MAP集合中键和值之间是如何建立映射关系的? 关于java写成.class如何作成类似可执行文件的文件格式 请问为了响应在JTextArea中选定文本这一事件,用什么监听器? 我不能保证每个浏览网页的计算机都装了jre啊! 【请教】JDBC读取Excel数据问题 java面试问题
如果是cmd 的话cmd /c dir c:
作为命令传过去notepad.exe c:/t.txt
{
Process proc = Runtime.getRuntime().exec("***");
int i = proc.waitFor();
System.out.println(i);
}catch(Exception e){ ... }
...
try {
//相当于window的"开始"->"运行"的效果
Runtime.getRuntime().exec("cmd /c start " + path);
} catch (IOException e) {
e.printStackTrace();
}
try ...{
//just for window
String[] command = new String[] ...{"cmd.exe", "/c", "copy", filePath, "FSOBACK"};
Process p = Runtime.getRuntime().exec(command);
p.waitFor();
}
catch(Exception ex) ...{
ex.printStackTrace();
}
Runtime.getRuntime().exec()中的参数,可是一个命令的字符串,如:"cmd.exe /c copy c:\\aaa.txt d:\bbb.txt"
如果是执行一个单独的程序,不带参数,可以 "haha.exe",同样,执行带参数的命令不能直接写命令。而要把程序也写上,如cmd.exe 如果有多个参数也可以写到一个数组中。要注意cmd.exe 与 /c 要当成两个参数来写,而不能写成:
new String[] {"cmd.exe /c", "copy", filePath, "FSOBACK"}; Runtime执行时,被执行的程序相当于子进程。可以返回子进程Process对象
p.waitFor()是指子进程执行完成后,再执行后面的程序。比如把文件copy到别处,再重写文件,如果不用waitFor(),不有可能文件还没有拷贝就已经更新了。拷贝的是更新过的文件。而不能达到备份的效果。
现在已经实现了,逐步传参,就可以的。呵呵……谢谢啦!