1

現在、次の行を含むバッチ ファイルがあります。

"C:\Program Files (x86)\Java\jre7\bin\java" -Xmx1224m -classpath .\xalan.jar 
org.apache.xalan.xslt.Process -IN  FileIn.xml -XSL FileConvert.xslt -OUT FileOut.xml

これは、与えられたものxmlと与えられたものを取りxslt、新しい変換された を吐き出しxmlます。バッチは問題なく実行されますが、これを変換してC#、その周りにアプリケーションを構築し、選択する入力ファイルなどのいくつかのパラメーターを変更できるようにしようとしています。

私のコードはこれです、

ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", 
        "/k " + "\"C:\\Program Files (x86)\\Java\\jre7\\bin\\java\" -Xmx1224m -classpath .\xalan.jar org.apache.xalan.xslt.Process -IN  In.xml -XSL Convert.xslt -OUT Out.xml");
Process proc = new Process();
proc.StartInfo = procStartInfo;
proc.Start();

CMD単純なコマンドのように実行されると考えています。これを行うと、使用が許可されている Java コマンドのリストを含むメッセージが表示され、そこで終了します。引用符などを使用して、いくつかのバリエーションを試しました@"C:\...

何か案は?

4

1 に答える 1

1

以下のようにしてみてください、それはあなたを助けるでしょう...

string commandLine = "-Xmx1224m -classpath .\xalan.jar org.apache.xalan.xslt.Process -IN  In.xml -XSL Convert.xslt -OUT Out.xml";
System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo(commandLine);
procStartInfo.WorkingDirectory = @"C:\Program Files (x86)\Java\jre7\bin\java";
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo = procStartInfo;
proc.Start();
string result = proc.StandardOutput.ReadToEnd();
Console.WriteLine(result);
于 2013-04-12T15:03:31.153 に答える