大水计划之DEA JAVA

Java调用exe 自动输入命令
0
悬赏园豆:100 [待解决问题] 浏览:171 次

DEAP2.1软件是数据包络分析(DEA)软件.

小弟用Eclipse平台实现B/S架构,需要客户端通过调用服务器端deap.exe(下图)软件,在服务器端实现数据处理后,显示到客户端网页。



关键问题在:用java调用exe,并且自动输入命令。

调用exe可以用Process process=run.exec("ipconfig");,但是“输入命令”这个问题被难倒了,需要让服务器端自动输入命令(命令是123.ins加回车),从而运行软件得出结果。





下面是参照网上找的方法编的一份代码,希望有大神能提点一下,小弟java新手,不知道还有没有其他方法实现这个功能,比如webservices或者RMI,希望能详细点,十分感谢。

import java.io.*;

public class RunExe {

public static void main(String[] args) {

Runtime run=Runtime.getRuntime();
try{
Process process=run.exec("C:\\deap2.1\deap.exe");
InputStreamReader in=new InputStreamReader(process.getInputStream());
BufferedReader inBr=new BufferedReader(in);
OutputStreamWriter os = new OutputStreamWriter(process.getOutputStream());
BufferedWriter bw = new BufferedWriter(os);

String lineStr;

while((lineStr=inBr.readLine())!=null){
System.out.println(lineStr);

}
bw.write("123.ins");

//process.waitFor();
process.getInputStream().close();
process.getOutputStream().close();
inBr.close();
in.close();

}


catch(Exception e){
e.printStackTrace();
}

}

}
编程语言
java
web services
nice哥 | 初学一级 | 园豆:100
提问于:2012-02-29 20:21
收藏
< > 博问关注问题功能上线啦! 收藏
所有回答(1)
0

把main方法中的代码拷过去,用webService封装起来,请求到了,就执行。
az235 | 园豆:3498 (老鸟四级) | 2012-03-01 08:25

你好,能详细点么?我没学过webservice,需要通俗点讲下,给个代码也行,可以加qq835803477解决么,这活很重要。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、软件的具体操作 1.建一个文件夹,里面必须有四个文件(Dblank;deap;deap.000;123.dta)前三个文件在一般下载的DEAP Version 2.1中都有,直接复制过来就可以,第四个文件是一个数据文件,一般先在excel中先输入,再复制到一个记事本下就可以,注意在记事本下的数据只有数据,不包括决策单元的名称和投入、产出的名称,并且一定要先放产出,后是投入。例子具体见123电子表格和123记事本。 2.对命令Dblank文件进行修改,修改后保存为123.ins文件 3.打开deap软件,运行123.ins 4,回车后自动会有123.out 注意事项:(1) 123.dta;Dblank;123.ins都用记事本打开; (2)数据文件名和命令文件名一定要一样,如例子中都用123 (3)文件夹中一定要包括deap.000文件,如果没有这个文件,打开deap软件,就会出现一闪就没有了的情况。 二,结果的分析 在文件夹中打开123.out,看如下: 1) firm crste vrste scale 1 0.687 1.000 0.687 drs 2 0.814 1.000 0.814 drs 3 0.319 0.709 0.450 drs 4 1.000 1.000 1.000 - 5 1.000 1.000 1.000 - 6 0.336 0.425 0.791 drs 7 0.642 0.648 0.991 irs 8 0.379 0.381 0.994 irs 9 0.702 0.750 0.936 irs 10 1.000 1.000 1.000 - 11 0.304 0.461 0.659 irs 12 0.352 1.000 0.352 irs 13 1.000 1.000 1.000 - 14 0.594 0.929 0.639 irs 15 0.402 1.000 0.402 irs mean 0.635 0.820 0.781 firm:代表例子中的15的样本 crste:技术效率,也叫综合效率 vrste:纯技术效率 scale:规模效率(drs:规模报酬递减;-:规模报酬不变;irs:规模报酬递增) crste=vrste×scale 2) Results for firm: 3 Technical efficiency = 0.709 Scale efficiency = 0.450 (drs) PROJECTION SUMMARY: variable original radial slack projected value movement movement value output 1 7326.380 0.000 0.000 7326.380 output 2 119.910 0.000 0.000 119.910 input 1 15427.000 -4496.010 0.000 10930.990 input 2 5257.970 -1532.371 -1643.828 2081.771 第三个样本的具体分析如下: 纯技术效率=0.709 规模效率=0.450 (drs):规模报酬应该递减 第三个样本的投入产出情况分析: 第一、二产出均没有冗余情况(因为其 radial movement 和 slack movement 均为零) 第一个投入要素有投入冗余4496.010;第二投入要素有投入冗余3176.199=1532.371+1643.828 这个意思是说按第三个样本现在的产出冗余第一个投入要素可以减少4496.010,第二个投入要素可以减少3176.199 Results for firm: 8 Technical efficiency = 0.381 Scale efficiency = 0.994 (irs) PROJECTION SUMMARY: variable original radial slack projected value movement movement value output 1 235.860 0.000 0.000 235.860 output 2 3.760 0.000 6.995 10.755 input 1 777.000 -480.651 0.000 296.349 input 2 132.550 -81.995 0.000 50.555 第八个样本则出现了产出不足的情况,即第二个产出应该比现在增加 6.995 如果投入因素是决策单元可的决定的,而产出因素是不能决定的时,我们分析就可以考虑投入是否能减少,不管产出是否能增加(因为产出是决策单元不可控的因素) 如果产出因素是决策单元可的决定的,而投入因素是不能决定的时,我们分析就可以考虑产出是否能增加,不管投入是否能减少(因为投入是决策单元不可控的因素) 如果样本单元的纯技术效率为1,而规模效率小于1时,这说明样本单元本身的技术效率而言没有投入需要减少、没有产出需要增加;样本单元的综合效率没有达到有效(即1),是因为其规模和投入、产出不相匹配,需要增加规模或减少规模。如例子中的第二个样本单元,其规模应该缩小。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值