c# - 使用 java 命令将 xml 批处理转换为 C#

标签 c# java xml cmd

我目前有一个包含以下行的批处理文件:

"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:\... 等等。

有什么想法吗?

最佳答案

试试下面的方法,会对你有帮助...

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);

关于c# - 使用 java 命令将 xml 批处理转换为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15973264/

相关文章:

Java:如何使用 org.apache.xerces.parsers.SAXParser 解析 XML 注释?

Java 8 将 String of int 转换为 List<Integer>

java - Java 中的 Hello World 无法编译

c# - Moq 设置 ServiceLocator

c# - 无法从 cmd 获取输出

java - 如何从java反射中的方法获取 "genericInfo"

java - spring + hibernate配置错误?类路径资源 [spring.xml] 中的 XML 文档无效

c# - 如何在 C# 2.0 中使用 XSLT 转换 XMLDocument

c# - UWP 中的 InkCanvas MVVM 绑定(bind)

c# - 如果类本身具有自定义属性,如何要求在所有类成员上使用自定义属性?