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

时间:2014-05-27 08:19:29

标签: java c# process system.diagnostics

我需要在另一个目录中执行.jar文件。以下是我尝试执行此任务的代码,

        try
        {

            Process p = new Process();
            p.StartInfo.FileName = @"java cp D:\nfc\nfctools-examples-M9\nfctools-examples-M9\src\main\java\nfctools-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。我完成了关于帖子的任务,

如果专家能帮助我解决这个错误,我将非常感激。非常感谢你:))

修改

路径org.nfctools.examples.hce.HceDemo位于D:\nfc\nfctools-examples-M9\nfctools-examples-M9\src\main\java\

文件夹结构是,

D:\
    nfc\
        nfctools-examples-M9\
            nfctools-examples-M9\
                src\
                    main\
                        java\
                            *nfctools-examples.jar
                            |org\
                            |   nfctools\
                            |       examples\
                            |           hce\
                            |               HceDemo.java

*表示需要执行的.jar文件,管道符号表示cp显示的类路径org.nfctools.examples.hce.HceDemo

此执行在命令提示符下通过java -cp nfctools-examples.jar org.nfctools.examples.hce.HceDemo文件夹中的D:\nfc\nfctools-examples-M9\nfctools-examples-M9\src\main\java\完成。

我的要求是通过C#执行执行,并将jar文件执行的结果获取到textbox

1 个答案:

答案 0 :(得分:1)

FileName指定的文件必须存在。不要向此属性添加任何参数。因此,您必须将代码转换为:

p.StartInfo.FileName = @"java";
p.StartInfo.Arguments = @"cp D:\nfc\nfctools-examples-M9\nfctools-examples-M9\src\main\java\nfctools-examples.jar org.nfctools.examples.hce.HceDemo";