4

问题如下:我有一个Java应用程序打包在一个“.jar”文件中。

我可以通过任一方式启动应用程序(Swing 应用程序)

  • 双击jar文件
  • 命令行java -jar MyApp.jar

但是,当我将命令行命令放入批处理文件时,它会告诉我

无法访问 jarfile MyApp.jar

批处理文件与 jar 位于同一目录中。就在我也从 cmd-line 开始的地方。我试图用管理员权限和管理员外壳调用蝙蝠 - 没有效果。

我正在使用 Windows 7(64 位)机器。任何提示将不胜感激。

编辑

你要求它:) 这是批处理文件:

@ECHO OFF
java -jar MyApp.jar
@PAUSE

编辑 2

通过双击和从 cmd 调用批处理具有相同的效果。将命令更改为

java -jar "C:\Full\Path\MyApp.jar"

没有效果。

编辑 3

我添加SET Path=%Path%;C:\Path\To\Jar到批处理文件中。没有效果。我还尝试使用 Chris 的链接建议并由 Viruzzo 支持的双反斜杠。也没有效果。

4

5 回答 5

2

双击 .bat 文件时,工作目录设置为 .bat 文件所在的位置,但通常类似于 %AppData%。要使其工作,您需要将文件的完整路径放在 bat 中(即java -jar C:\path\to\jar\MyApp.jar)。

于 2012-04-17T14:47:03.133 回答
1

我只需要把我的路径放在引号中,即使它没有空格或奇数字符。

java -jar C:\Users\Jacob\executables\some-file.jar失败了,但是

java -jar "C:\Users\JStamm\executables\some-file.jar"工作。

于 2018-06-26T21:11:56.610 回答
0

确保您没有在 Windows 中启用隐藏扩展选项。也许您的 jar 的名称以 .jar.jar 结尾?你确定jar的路径是正确的吗?

于 2012-04-17T15:02:59.750 回答
0

我还没有弄清楚为什么,但现在它起作用了:

第一个批处理文件是另一个批处理文件的副本,我只是更改了内容以满足我的需要。

现在我将它重命名为 MyApp.bak 并从头开始编写了一个新的 MyApp.bat。

一旦我发现有什么区别,我会更新这个答案。

更新

另一批又发生了。这一次,我们得到了原因:由于某种原因,批处理文件在复制时没有继承权限。在文件夹中创建一个新文件夹具有正确的权限。所以,最终这确实是一个权利问题。

于 2012-04-18T07:47:35.527 回答
0

这不是针对您的特定问题的答案,但这将允许您对问题进行故障排除,以便您找到答案。添加睡眠命令将使命令提示符坐下,因此它不会立即关闭。

ping 1.1.1.1 -n 1 -w 10000

(睡10秒)

于 2015-05-10T09:30:47.163 回答