質問

So after scouring the web I found a few articles (some on stackoverflow) which described how to execute a command line prompt by starting a new process in c#. The second argument, which I've commented out, works just fine, but the one I actually need (the first one) doesn't. It returns the error "Could not find or load main class edu.stanford.nlp.parser.lexparser.LexicalizedParser" When I open up a command line (non-programatically) and then execute the same command (aside from the escaped quotations) it works great. Any idea's about what the problem could be? Thanks!

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());
役に立ちましたか?

解決

Ensure that the executing path where you start your process is correct!

You can use Process Monitor from SysInternals to figure out where that class is looked for.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top