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

标签 java spring jar

当我尝试在 Windows 上以编程方式运行 java -jar 命令时,发生了一些奇怪的情况。

运行这样的命令时:

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

我收到错误

Error: Could not find or load main class �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);

我怀疑这个问题与参数的编码有关。 有办法确定吗?当我通过网络服务接收到字符串时,我可以以某种方式更改它的编码吗?我正在 Windows 上测试 Web 服务,但如果重要的话,最终它可能会位于 Solaris 站点上。

最佳答案

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

关于java - 无法通过 Web 服务以编程方式运行 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33015241/

相关文章:

Spring:必须Service或Controller或Repository有一个接口(interface)

java - 无法使用相对路径从资源文件夹获取 JSON 文件

java - 检索具有相同值的所有映射键

java - 使用匹配器和模式分割 fillePath 和文件名

java - 如何从 RAMJobStore 迁移到 JobStoreCMT,以便在 Seam 中持久化 Quartz 作业

java - 无法构建 EntityManagerFactory

java - spring mvc中不存在必需的MultipartFile参数 'file'

java-如何在运行时参数包含 "<"和 ">"字符的 Windows 命令行中运行 JAR 文件

java - 从 HTML 页面上的本地 Java/java applet 类调用函数

java - 如何比较 mongoDB spring 数据中的两个字符串?