2014-02-07 4 views
2

Итак, после очистки веб-страниц я нашел несколько статей (некоторые из stackoverflow), в которых описано, как выполнить приглашение командной строки, запустив новый процесс в C#. Второй аргумент, который я прокомментировал, работает отлично, но тот, который мне действительно нужен (первый), не работает. Он возвращает ошибку «Не удалось найти или загрузить основной класс edu.stanford.nlp.parser.lexparser.LexicalizedParser» Когда я открываю командную строку (не программно) и затем выполняю ту же команду (кроме экранированных цитат), она прекрасно работает. Любая идея о том, что может быть проблемой? Благодаря!Процесс командной строки

var proc = new Process 
{ 
    StartInfo = new ProcessStartInfo 
    { 
     FileName = "CMD.exe", 
     Arguments = "/c java -mx100m -cp \"*\" edu.stanford.nlp.parser.lexparser.LexicalizedParser edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz libtest.txt", 
     // Arguments = "/c echo Foo", 
     UseShellExecute = false, 
     RedirectStandardOutput = true, 
     RedirectStandardError = true, 
     CreateNoWindow = true 
    } 
}; 
proc.Start(); 

Console.WriteLine(proc.StandardOutput.ReadToEnd()); 
Console.WriteLine(proc.StandardError.ReadToEnd()); 

ответ

1

Убедитесь, что путь выполнения, в котором вы начинаете свой процесс, является правильным!

Вы можете использовать Process Monitor из SysInternals, чтобы выяснить, где находится этот класс.

+0

В этом была проблема! Вы знаете, как отрегулировать путь от верхней части головы? Команда «cd» не работала, но если есть способ сделать то же самое в C#, что было бы идеально. Если нет, я могу выяснить, как получить файл cmd.exe, работающий в не-родном каталоге. В любом случае, спасибо! –

+0

@ user2742040 Я думаю, что установка пути в cmd.exe не будет работать. Но я уверен, что если вы создадите объект ProcessStartInfo с правильным путем и передадите его в Process.Start (здесь), cmd откроется в текущем рабочем каталоге – toATwork

+0

Да, это так. Я думал, что мне нужно будет на самом деле переместить программу, но просто изменить путь! –

Смежные вопросы