我需要在另一个目录中执行一个.jar
文件。下面是我尝试执行此任务的代码,
try
{
Process p = new Process();
p.StartInfo.FileName = @"java cp D:nfcnfctools-examples-M9nfctools-examples-M9srcmainjavanfctools-examples.jar";//, @"-cp nfctools-examples.jar org.nfctools.examples.hce.HceDemo");
p.StartInfo.Arguments = @"org.nfctools.examples.hce.HceDemo";
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.Start();
String s = p.StandardOutput.ReadToEnd();
p.WaitForExit();
textBox1.Text = textBox1.Text + "data = " + s;
}
catch (Exception ex) {
MessageBox.Show(ex.ToString());
}
但是我得到了错误The system cannot find the file specified error
。我参照帖子完成了任务,
- 使用System.Diagnostics.Process 启动Jar文件
- 从C代码中执行Jar文件并获得返回值
编辑
路径org.nfctools.examples.hce.HceDemo
在D:nfcnfctools-examples-M9nfctools-examples-M9srcmainjava
。
文件夹结构为,
D:
nfc
nfctools-examples-M9
nfctools-examples-M9
src
main
java
*nfctools-examples.jar
|org
| nfctools
| examples
| hce
| HceDemo.java
*表示需要执行的.jar文件,管道符号表示org.nfctools.examples.hce.HceDemo
所示的类路径cp
。
这个执行是在命令提示符下通过java -cp nfctools-examples.jar org.nfctools.examples.hce.HceDemo
从D:nfcnfctools-examples-M9nfctools-examples-M9srcmainjava
文件夹中完成的。
我的要求是通过C#
执行,并获得jar
文件执行到textbox
的结果。
FileName指定的文件必须存在。不要向这个属性添加任何参数。因此,你必须把你的代码变成这样:
p.StartInfo.FileName = @"java";
p.StartInfo.Arguments = @"cp D:nfcnfctools-examples-M9nfctools-examples-M9srcmainjavanfctools-examples.jar org.nfctools.examples.hce.HceDemo";