【问题标题】:Anylogic: different results when running model .bat file and calling .bat file from C#Anylogic:运行模型 .bat 文件和从 C# 调用 .bat 文件时的不同结果
【发布时间】:2021-12-02 00:53:23
【问题描述】:

我可以使用独立的 Java 应用程序成功运行 anylogic 模型,并且在我的 Windows 10 上运行 .bat 文件没有任何问题。

这是本例中运行描述的图像;

但是当我通过 c# 应用程序调用同一个 .bat 文件时,运行日志描述与 start 不同,模型无法运行。运行日志描述图片为:

在目录后的第一个图像中,调用 java.exe 文件,然后调用 -cp 命令。但在目录后的第二张图像中 -cp 命令立即被调用。并且该模型也无法运行。出了什么问题,我应该怎么做才能解决问题?

附: 调用批处理文件的代码如下:

try      
{
       ProcessStartInfo procInfo = new ProcessStartInfo();
       procInfo.UseShellExecute = true;
       procInfo.FileName = @"directory and file.bat";  //The file in that DIR.
       procInfo.WorkingDirectory = @"dirctory"; //The working DIR.
       procInfo.Verb = "runas";
       Process.Start(procInfo);  //Start that process.
}
catch (Exception ex)
{
   MessageBox.Show(ex.Message.ToString());
}

【问题讨论】:

    标签: batch-file simulation anylogic


    【解决方案1】:

    这是企业系统上 .bat 启动器的常见问题,因为它希望 java 位于某个位置。我建议编辑 .bat 文件并将命令中使用的 %PATH_XJAL% 替换为仅使用“java”启动模型 - 这通常有效,因为 java 将位于系统 PATH 变量中的某个位置。

    【讨论】:

    • 这是对他的第二个屏幕截图中错误的最明显/最常见的解释,但不是为什么直接从 Windows 或 C# 运行相同的 whole 脚本会产生不同的结果(尽管答案被接受,所以也许这个问题缺少一些关键细节......)。另外,至少 AnyLogic 的最后几个版本现在会生成批处理脚本,如果它在寻找它的地方找不到 JRE,则这些脚本会退回到默认的 java 调用,因此除非导出完成,否则不再需要这样做通过旧版本的 AnyLogic。
    猜你喜欢
    • 2018-09-07
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    相关资源
    最近更新 更多