我正在尝试使用 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# 应用程序。
在 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(); }
不使用批处理文件启动 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/