JAVA自动化分析过程的问题
应用背景介绍
使用商用CFD(计算流体力学)软件STAR-CCM+进行流程化(自动化)集成时,需要对JAVA宏(macro)进行录制、编辑和重放操作。录制 功能可以将流程化的操作进行记录并自动生成宏文件(.java),随后可对其进行编辑 以精简代码。最后便可进行重放。
存在的问题
因流程实现问题,现在需要在重放操作 完成后,将已经打开的STAR-CCM+前台窗口及后台进程停止以进行后续操作(此过程必须通过宏来实现,不能通过鼠标点击),然而STAR-CCM+未提供相关命令,因此尝试对录制后的 .java 文件进行编辑以实现该目标。尝试如下:
- 软件工作界面及后台进程有三个,如下图所示:
在代码最后添加命令System.exit(0);
并执行
随后,前台窗口被关闭,后台进程仅剩余两个,如下所示:
但此时并未达到最终目标,随后继续尝试另一方法。
- 软件工作界面及后台进程有三个,如下图所示:
- 经百度查阅资料增加如下代码
taskkill /F /IM starccm+.exe;
尝试杀掉后台的starccm+.exe进程。但此时出现报错如下图:
现正在找错误原因,但由于对JAVA掌握较为肤浅,还请各位专业人士给出些许建议,不胜感激。附JAVA代码如下
// STAR-CCM+ macro: TESTCLOSE.java // Written by STAR-CCM+ 14.02.010 package macro; import java.util.*; import star.common.*; import star.base.neo.*; import star.resurfacer.*; import star.prismmesher.*; import star.trimmer.*; import star.extruder.*; import star.meshing.*; public class TESTCLOSE extends StarMacro { public void execute() { execute0(); // D:/Desktop/TEST.sim } private void execute0(){ Simulation simulation_0 = getActiveSimulation(); Region region_0 = simulation_0.getRegionManager().createEmptyRegion(); MeshContinuum meshContinuum_0 = simulation_0.getContinuumManager().createContinuum(MeshContinuum.class); meshContinuum_0.enable(ResurfacerMeshingModel.class); Units units_0 = ((Units) simulation_0.getUnitsManager().getObject("mm")); meshContinuum_0.getReferenceValues().get(BaseSize.class).setUnits(units_0); simulation_0.saveState("D:\\Desktop\\TEST.sim"); //System.exit(0); //taskkill /F /IM starccm+.exe; //Runtime runt = Runtime.getRuntime(); //runt .exec("cmd.exe /C start wmic process where name='starccmw.exe' call terminate"); } }
- 经百度查阅资料增加如下代码