package com.smtaiscript.run; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.PrintStream; import com.smtscript.lib.jdbc.ScriptJDBC; import com.smtscript.utils.SMTStatic; public class SMTAIRunMain { private static int _exitCode = 0; public static void setRetCode(int retCode) { _exitCode = retCode; } public static void main(String[] args) { System.setProperty("slf4j.detectMultipleBindings", "false"); SMTAIScriptRuntime script = null; boolean webCall = "true".equalsIgnoreCase(System.getProperty("web_call")); try { boolean isDebuggerGui = "true".equalsIgnoreCase(System.getProperty("debug_gui")); ScriptJDBC.__setJDBCRootClass(SMTAIRunMain.class); // 执行脚本 File file = new File(args[0]); script = new SMTAIScriptRuntime(); if(isDebuggerGui) script.evalScriptFileDebugGui(file); else script.evalScriptFile(file); } catch(Throwable ex) { ByteArrayOutputStream byteOS = new ByteArrayOutputStream(); PrintStream ps = new PrintStream(byteOS); ex.printStackTrace(ps); String errMsg = new String(byteOS.toByteArray()); if(webCall) System.out.println("HSWATER_PROC:{\"error\":\"" + SMTStatic.toCStr(errMsg) + "\"}"); else System.out.println(errMsg); _exitCode = -100; } finally { if(script != null) { try { script.exitInstance(); } catch(Exception ex) { ex.printStackTrace(); } } // try { // com.hswaternet.jdbc.logger.HWNPGAppender.stopWriteLoggerThread(); // } catch (Exception e) { // e.printStackTrace(); // } System.exit(_exitCode); } } }