Итак, после очистки веб-страниц я нашел несколько статей (некоторые из 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());
В этом была проблема! Вы знаете, как отрегулировать путь от верхней части головы? Команда «cd» не работала, но если есть способ сделать то же самое в C#, что было бы идеально. Если нет, я могу выяснить, как получить файл cmd.exe, работающий в не-родном каталоге. В любом случае, спасибо! –
@ user2742040 Я думаю, что установка пути в cmd.exe не будет работать. Но я уверен, что если вы создадите объект ProcessStartInfo с правильным путем и передадите его в Process.Start (здесь), cmd откроется в текущем рабочем каталоге – toATwork
Да, это так. Я думал, что мне нужно будет на самом деле переместить программу, но просто изменить путь! –