c# - 通过 C# 从命令行启动 Weka

标签 c# .net command-line weka

我正在尝试使用 C# 从 cmd 行打开 Weka。这是我正在使用的代码。它给我一个 Weka.Start() 行的错误,错误是:未处理 Win32 异常。系统找不到指定的文件。请帮帮我。谢谢

 ProcessStartInfo WekaStartInfo = new ProcessStartInfo(@"C:\Program Files\Weka-    3-6\java -Xmx1536m -jar weka.jar");


        WekaStartInfo.UseShellExecute = false;
        WekaStartInfo.RedirectStandardOutput = true;
        WekaStartInfo.RedirectStandardError = true;
        WekaStartInfo.CreateNoWindow = false;

        Process Weka = new Process();
        Weka.StartInfo = WekaStartInfo;
        Weka.Start();
        string output = Weka.StandardOutput.ReadToEnd();
        Weka.WaitForExit();

最佳答案

有两个选项可以从一个 C# 应用程序。

  1. 在 WEKA 安装目录中有一个 名为 RunWeka.bat 的批处理文件。启动 WEKA 使用此批处理文件使用以下 代码:

    ProcessStartInfo wekaStartInfo = 
             new ProcessStartInfo(@"c:\Program Files\Weka-3-6\runweka.bat", "default");
    
    wekaStartInfo.WorkingDirectory = @"c:\Program Files\Weka-3-6";
    
    wekaStartInfo.UseShellExecute = false;
    wekaStartInfo.RedirectStandardOutput = true;
    wekaStartInfo.RedirectStandardError = true;
    wekaStartInfo.CreateNoWindow = false;
    
    using(Process weka = new Process())
    {
      weka.StartInfo = wekaStartInfo;
      weka.Start();
    }
    
  2. 不使用批处理文件启动 WEKA 使用以下代码:

    ProcessStartInfo wekaStartInfo = 
        new ProcessStartInfo(@"javaw", @"-classpath . RunWeka -i .\RunWeka.ini -w .\weka.jar -c default");
    
    wekaStartInfo.WorkingDirectory = @"c:\Program Files\Weka-3-6";
    wekaStartInfo.UseShellExecute = false;
    wekaStartInfo.RedirectStandardOutput = true;
    wekaStartInfo.RedirectStandardError = true;
    wekaStartInfo.CreateNoWindow = false;
    
    using(Process weka = new Process())
    {
      weka.StartInfo = wekaStartInfo;
      weka.Start();           
    }
    

在这两种情况下,您都必须设置工作目录。

关于c# - 通过 C# 从命令行启动 Weka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9858173/

相关文章:

command-line - 批处理文件 : copy all file except those its name contain some substring

c# - 在 C# 中设置/获取命令行系统变量

c# - MSTest - 带有列表参数的最小起订量设置返回空列表

c# - 自定义 ItemsControl 和选择支持

.net - 使用 WCF RIA 服务,其中数据源不是经典(关系)数据库

linux - 从命令行自动配置 Jupyter 密码

c# - 如何在多部分/表单数据请求的请求正文中记录文件内容

c# - 从今天开始查找接下来的 5 个工作日

c# - 通过 C# 将小数坐标转换为度、分和秒

c# - 如何检查对象是否可为空?