从cmd启动Java应用程序,从批处理不工作

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

我也可以启动应用程序(Swing应用程序)

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

但是,当我把命令行命令放入batch file时,它会告诉我

无法访问jarfile MyApp.jar

batch file与jar相同。 我也是从cmd行开始的。 我试图用pipe理员权限和admin-shell来调用蝙蝠 – 没有效果。

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

编辑

你问了:)这是batch file:

 @ECHO OFF java -jar MyApp.jar @PAUSE 

编辑2

通过双击来从cmd调用该批次具有相同的效果。 将命令更改为

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

没有效果。

编辑3

我添加了SET Path=%Path%;C:\Path\To\Jar到batch file。 没有效果。 我也尝试使用双反斜杠build议由克里斯的链接和维鲁佐的支持。 也没有效果。

双击.bat文件时,工作目录设置为.bat文件的位置,但通常是%AppData%。 为了使它工作,你需要把蝙蝠内的文件的完整路径(即java -jar C:\path\to\jar\MyApp.jar )。

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

这不是你的具体问题的答案,但这将允许你排除故障,所以你会找到答案。 添加睡眠命令会让命令提示符坐下来,所以它不会马上关闭。

 ping 1.1.1.1 -n 1 -w 10000 

(睡10秒)

我还没有想出为什么,但现在它工作:

第一批文件是另一个的副本,我只是改变了内容,以适应我的需要。

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

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

UPDATE

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