我有一个通过tcp访问java程序的c#程序。在我的C#程序中,我通过以下代码行启动java程序:
var process = new Process
{
StartInfo =
{
UseShellExecute = false,
CreateNoWindow = false,
FileName = "cmd.exe",
Arguments = (@"/c java -ms16m -mx512m -jar pathToJavaApp/javaApp.jar 3562")
}
};
这项工作正常我直到现在都没有问题。我已经在同事的电脑上安装了我的程序。现在我收到错误:无法访问jar文件。
所以我尝试在命令行“java -jar javaApp.jar”中立即启动javaApp。
我尝试以管理员身份启动程序,同样的错误。 (windows vista)
目前我不知道问题可能是什么。
答案 0 :(得分:2)
我的猜测是jar文件的路径包含空格。你需要引用它。例如:
Arguments = "/c java -ms16m -mx512m -jar \"" + pathToJavaApp
+ "\"/javaApp.jar 3562"
答案 1 :(得分:0)
2件事 -
它是-Xmx和-Xms,而不是-ms,-mx。
您的程序是否加载了其他罐子?也许它们存在于您的同事计算机上,但不存在于它不能运行的计算机上。
(虽然Jon Skeet的回答看起来更有可能)
答案 2 :(得分:0)
为了更多地了解正在发生的事情,请将您的论点更改为:
Arguments = (@"/c java -verbose -ms16m -mx512m -jar pathToJavaApp/javaApp.jar 3562")
通过这种方式,您可以看到它正在尝试加载的内容,看看Jon Skeet是否正确。