使用cmd通过C#运行程序不起作用

时间:2016-02-07 17:24:12

标签: c# windows cmd jmeter

我尝试使用cmd通过C#运行JMeter,但它只是打开cmd并且没有运行任何内容。

    System.Diagnostics.Process process = new System.Diagnostics.Process();
        System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
        //startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
        startInfo.WorkingDirectory = "D:";
        startInfo.FileName = "cmd.exe";
        startInfo.Arguments = "/k D:\\jmeter\\apache-jmeter-2.13\\bin\\ApacheJMeter.jar -n -t D:\\Delo\\dokument.jmx";
        process.StartInfo = startInfo;
        process.Start();

该代码只是打开cmd而没有任何反应。我尝试过更改工作目录,但它不起作用。如果我没有设置工作目录,cmd只是在我的调试目录中打开。如果我直接从cmd(没有C#)启动它,这确实有效。

解决了这个问题:a link

2 个答案:

答案 0 :(得分:1)

我不确定你想要达到的目标,以及你为什么不using System.Diagnostics?但如果我理解你,我有一个建议:

>         System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();

>         startInfo.WorkingDirectory = "D:";
>         startInfo.FileName = @"D:\jmeter\apache-jmeter-2.13\bin\ApacheJMeter.jar";
>         startInfo.Arguments = "";
>         System.Diagnostics.Process.Start(startInfo);
> 
>         System.Diagnostics.ProcessStartInfo startInfo2 = new System.Diagnostics.ProcessStartInfo();
>         startInfo2.WorkingDirectory = "D:";
>         startInfo2.FileName = @"D:\Delo\dokument.jmx";
>         startInfo2.Arguments = "";
>         System.Diagnostics.Process.Start(startInfo2);

答案 1 :(得分:0)

我认为您不能通过cmd解释器直接运行.jar文件,请选择以下备选方案:

  • 使用jmeter.bat包装脚本
  • 调用Java可执行文件,如:path\to\java.exe -jar D:\\jmeter\\apache-jmeter-2.13\\bin\\ApacheJMeter.jar ...

我还建议使用-l命令行参数,以便生成.jtl结果文件。

有关详细信息,请参阅How Do I Run JMeter in Non-GUI Mode?文章。我也相信Full list of command-line options会对您的案件有所帮助。