代码之家  ›  专栏  ›  技术社区  ›  Raúl Roa

从.NET到Mono的系统调用

  •  4
  • Raúl Roa  · 技术社区  · 15 年前

    我正在尝试使用mono进行外部系统调用。我想知道是否可以模仿下面的例子(当然,我在寻找跨平台支持)。

    public static int ExecuteExternalApp()
                {
                    int ExitCode = -1;
                    Process Process = new Process(); ;
    
                    //Defining the filename of the app
                    Process.StartInfo.FileName = "java";
    
                    //Assigning the args to the filename
                    Process.StartInfo.Arguments = @"-jar """ + ConfigurationManager.AppSettings["JarPath"].ToString();
    
                    try
                    {
                        //Starting the process
                        Process.Start();
    
                        //Waiting for the process to exit
                        Process.WaitForExit();
    
                        //Grabbing the exit code
                        ExitCode = Process.ExitCode;
    
                        //Close the process
                        Process.Close();
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }
    
                    return ExitCode;
                }
    

    **更新:此代码在mono中有效。由于对系统命名空间的引用不存在(不知道是如何发生的),第一个实现不起作用,只要使用System.Diagnostics命名空间,此代码块就起作用。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Community WizardZ    7 年前

    我不确定这是否是你想要的,但是看看我发布的代码示例 Windows Service Application Controller 这是单声道的。