无法通过Web服务以编程方式运行jar文件

时间:2015-10-08 12:02:41

标签: java spring jar

当我尝试在Windows上以编程方式运行java -jar命令时会发生奇怪的事情。

运行如下命令时:

Process p = Runtime.getRuntime().exec(cmd); //cmd string is ok
p.waitFor();

我收到错误

  

错误:无法找到或加载主类�jar

然而,当我试图像这样运行它时:

Process p = Runtime.getRuntime().exec("hard coded command with parameters"); 
p.waitFor();

在这种情况下,它工作正常。

cmd字符串是使用String.Format生成的,它通过Spring Web服务接收其参数:

cmd = String.format("java –jar %s –o win -i %s -n %s -d %s -s %s", jarLocation, param1, param2, tgtFilePath, srcFilePath);

我怀疑这个问题与参数的编码有某种关系。 有没有办法确定?我可以通过Web服务以某种方式更改字符串的编码吗?我在Windows上测试Web服务,但最终它可能会在Solaris工作站上进行测试。

1 个答案:

答案 0 :(得分:0)

在查看两个字符串的字节后,我发现由于某种原因,String.Format可能会生成' - '字符作为en-dash(格式字符串包含U + 2013)而不是连字符(U + 002D)。我不确定为什么会这样做,但我将一个连字符粘贴到格式化的字符串中,然后一切正常。