2012-03-25 4 views
2

Я пытаюсь открыть Weka из строки cmd, используя C#. Это код, который я использую. Это дает мне ошибку для строки Weka.Start(), и ошибка: исключение Win32 было необработанным. Системе не удается найти указанный файл. Пожалуйста, помогите мне. СпасибоЗапуск Weka из командной строки через C#

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(); 

ответ

1

Есть два варианта запуска WEKA из приложения # в C.

  1. В каталоге установки ВЕКА есть пакетный файл называется 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();   
    } 
    

В обоих случаях необходимо установить рабочий каталог.

0

Возможно, вы указали неправильное или не существующее место для своего процесса на основе описания ошибки. Проверьте правильность пути, указанного в ProcessStartInfo.

Может быть, есть лишние пробелы в декларации здесь:

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

В конструкторе ProcessStartInfo вы должны либо ввести только имя application, или указать аргументы separate;

ProcessStartInfo WekaStartInfo = new ProcessStartInfo(
            @"C:\Program Files\Weka-3-6\java.exe", 
            @"-Xmx1536m -jar weka.jar"); 
Смежные вопросы