我正在尝试使用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();
答案 0 :(得分:1)
从a开始WEKA有两种选择 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();
}
在这两种情况下,您都必须设置工作目录。
答案 1 :(得分:0)
您可能已根据错误说明为流程指定了错误或不存在的位置。检查ProcessStartInfo中指定的路径是否正确。
也许,声明中有不必要的空格:
ProcessStartInfo WekaStartInfo = new ProcessStartInfo(@"C:\Program Files\Weka-3-6\java -Xmx1536m -jar weka.jar");
答案 2 :(得分:0)
在ProcessStartInfo的构造函数中,您必须只输入application名称,或指定参数separate;
ProcessStartInfo WekaStartInfo = new ProcessStartInfo(
@"C:\Program Files\Weka-3-6\java.exe",
@"-Xmx1536m -jar weka.jar");