使用类路径(cp)在单独的位置执行java控制台应用程序



我需要在另一个目录中执行一个.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.HceDemoD: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.HceDemoD: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";

相关内容

  • 没有找到相关文章

最新更新