JAVA自动化分析过程的问题

应用背景介绍

使用商用CFD(计算流体力学)软件STAR-CCM+进行流程化(自动化)集成时,需要对JAVA宏(macro)进行录制、编辑和重放操作。录制 功能可以将流程化的操作进行记录并自动生成宏文件(.java),随后可对其进行编辑 以精简代码。最后便可进行重放

存在的问题

因流程实现问题,现在需要在重放操作 完成后,将已经打开的STAR-CCM+前台窗口后台进程停止以进行后续操作(此过程必须通过宏来实现,不能通过鼠标点击),然而STAR-CCM+未提供相关命令,因此尝试对录制后的 .java 文件进行编辑以实现该目标。尝试如下:

    1. 软件工作界面及后台进程有三个,如下图所示:
      三个进程
      在代码最后添加命令 System.exit(0);并执行
      随后,前台窗口被关闭,后台进程仅剩余两个,如下所示:

      但此时并未达到最终目标,随后继续尝试另一方法。
    1. 经百度查阅资料增加如下代码
      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");
      }
      }
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!