通过java代码调取C#应用程序并实现数据交互
主要介绍通过java调用C#的应用程序,并传递参数给C#客户端。之前做项目遇到了这个功能,顺便把代码分享出来;
要求:
1.java是web框架,部署在服务器中
2.C#客户端(是exe文件)放在服务器中,C#程序负责调取另外一台服务的数据
3.javaweb项目和C#客户端是在同服务器中
3.要求java代码启动C#程序,并传递一个参数给C#;当然C#是控制台程序Main方法
4.更值得注意的是C#客户端代码中有访问网络驱动盘路径,网络驱动盘(意思是将另台服务器的盘映射到本地服务器中,在来访问路径),这样就存在一个大问题,
在服务器中通过人工直接启动C#客户端是没问题的,可以访问网络驱动盘路径;问题来了,通过javaweb前端按钮执行java代码在调取C#客户端,这时C#客户端找不到网络映射驱动路径,因此需要修改C#代码,实现网络驱动盘共享出来。关于通过web方式调取应用程序无法访问网络驱动盘,放到另外个博客中,这儿就不做介绍了。
实现:
java代码:
/**
*command是exe路径,如(D:\\C#.exe)
*param是传递给exe的参数
*注意不要用process调取程序,因为无法传参
**/
private boolean ExecBat(String command,String param){
try {
ProcessBuilder p= new ProcessBuilder(command,param);//只能用processbuilder,不用process
p.start();
} catch (IOException e) {
return false;
}
return true;
}