问题如下:我有一个Java应用程序打包在“.jar”文件中。
我也可以启动应用程序(Swing应用程序)
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
它又发生了另一批。 这一次,我们得到了原因:由于某种原因,批处理文件复制时没有继承权限。 在文件夹中创建一个新的具有正确的权利。 所以最后确实是一个权利问题。