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
是的,它的确如此。我以为我将不得不实际移动程序,但只是改变工作路径! –