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());
這就是問題!你知道一種方法來調整你的頭頂的路徑嗎? 「cd」命令不起作用,但如果有一種方法可以在c#中完成同樣的事情,那將是完美的。如果沒有,我可以弄清楚如何讓cmd.exe文件在非本地目錄中工作。無論哪種方式,謝謝! –
@ user2742040我認爲在cmd.exe中設置路徑不起作用。但是我非常有信心,如果你使用正確的路徑創建一個ProcessStartInfo對象並將它傳遞給Process.Start(這裏),cmd將在當前工作目錄中打開 – toATwork
是的,它的確如此。我以爲我將不得不實際移動程序,但只是改變工作路徑! –