从 cmd 启动 Java 应用程序可以,但不能从批处理启动 Java 应用程序

Fil*_*dor 6 java windows batch-file executable-jar

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

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

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

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

无法访问 jar 文件 MyApp.jar

批处理文件与 jar 位于同一目录中。正是我从命令行开始的地方。我尝试使用管理员权限并从管理 shell 调用 bat - 没有效果。

我正在 Windows 7(64 位)计算机上工作。任何提示将不胜感激。

编辑

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

@ECHO OFF
java -jar MyApp.jar
@PAUSE
Run Code Online (Sandbox Code Playgroud)

编辑2

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

java -jar "C:\Full\Path\MyApp.jar"
Run Code Online (Sandbox Code Playgroud)

没有影响。

编辑3

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

Fil*_*dor 0

我还没弄清楚为什么,但现在它可以工作了:

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

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

一旦我发现差异是什么,我就会更新这个答案。

更新

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