如何在c#中使用参数执行Java应用程序

时间:2013-12-03 20:14:11

标签: c# java command arguments

我自己研究过并试图这样做,但没有运气。我正在尝试执行一个Java应用程序并传递一些变量。它正在查找java并运行它,但没有传递任何变量,这是我到目前为止的 -

Process proc = new Process();
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.Arguments = @"-jar javaapp.jar" + "host:port" +     "password" + "/say" + "test";
        startInfo.FileName = "java";
        proc.StartInfo = startInfo;
        proc.Start();

我根本无法解决这个问题。我不想使用任何第三方软件(除非它可以打包在.EXE中),因为这是为了分发给需要它的人。感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

你需要在你连接的字符串中加上空格,你的命令目前看起来像是

java -jar javaapp.jarhost:portpassword/saytest

最简单的方法是使用string.Format

string command1 = "/say"
string command2 = "test"
string args = string.Format("-jar javaapp.jar {0}:{1} {2} {3} {4}", host, port, password, command1, command2);
startInfo.Arguments = args;

答案 1 :(得分:0)

参数是一个字符串 - 你拥有它的方式它们都将被混合在一起,没有空格分隔它们。

C#中的@符号用于字符串的文字格式;看起来你正试图用它来构建一个数组或其他东西。