通过C#从命令行启动Weka
本文关键字:启动 Weka 命令行 通过 | 更新日期: 2023-09-27 18:28:51
我正试图使用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(); }
在这两种情况下,都必须设置工作目录。
您可能根据错误描述为流程指定了不正确或不存在的位置。检查ProcessStartInfo中指定的路径是否正确。
也许,这里的声明中有不必要的空格:
ProcessStartInfo WekaStartInfo = new ProcessStartInfo(@"C:'Program Files'Weka-3-6'java -Xmx1536m -jar weka.jar");
在ProcessStartInfo的构造函数中,您必须只输入应用程序名称,或者单独指定参数;
ProcessStartInfo WekaStartInfo = new ProcessStartInfo(
@"C:'Program Files'Weka-3-6'java.exe",
@"-Xmx1536m -jar weka.jar");