2012-03-25 5 views
2

Ich versuche, Weka von cmd Linie zu öffnen, mit C#. Dies ist der Code, den ich verwende. Es gibt mir einen Fehler für Weka.Start() Zeile, und der Fehler ist: Win32 Ausnahme wurde nicht behandelt. Das System kann die angegebene Datei nicht finden. Bitte hilf mir. DankeStart Weka von der Kommandozeile über 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(); 

Antwort

1

Es gibt zwei Optionen WEKA von einer C# Anwendung zu starten.

  1. Im WEKA Installationsverzeichnis gibt es eine Batch-Datei RunWeka.bat genannt. So starten WEKA mit dieser Batch-Datei die folgende Code verwenden:

    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. zu WEKA zu starten, ohne die Batch-Datei mit den folgenden Code verwenden:

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

In beiden Fällen Sie muss das Arbeitsverzeichnis festlegen.

0

Sie haben wahrscheinlich einen falschen oder nicht vorhandenen Speicherort für Ihren Prozess basierend auf der Fehlerbeschreibung angegeben. Überprüfen Sie, ob der in ProcessStartInfo angegebene Pfad korrekt ist.

Vielleicht gibt es unnötige Räume in der Erklärung hier:

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

Im Konstruktor von Process müssen Sie entweder geben Sie einfach die application Namen oder die Argumente angeben separate;

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