Java 在bat上运行带有丢弃文件的jar
我想在.bat文件上拖放一个文件。在我删除它之后,我想运行一个jar文件,将删除的文件路径作为输入。如何使用相对路径运行jar文件?运行的dir my.bat文件是我的用户dir,而不是它所在的dirJava 在bat上运行带有丢弃文件的jar,java,batch-file,jar,Java,Batch File,Jar,我想在.bat文件上拖放一个文件。在我删除它之后,我想运行一个jar文件,将删除的文件路径作为输入。如何使用相对路径运行jar文件?运行的dir my.bat文件是我的用户dir,而不是它所在的dir goal: cmd /c java -jar myjar.jar -f %1 current: cmd /c java -jar c:\somewhere\myjar.jar -f %1 关键是,这个程序(jar+bat)是一个小型自动部署过程的一部分,对于每个用户来说,可能有一个不同的路径来运
goal: cmd /c java -jar myjar.jar -f %1
current: cmd /c java -jar c:\somewhere\myjar.jar -f %1
关键是,这个程序(jar+bat)是一个小型自动部署过程的一部分,对于每个用户来说,可能有一个不同的路径来运行jar。也许这是可行的,它将当前目录更改为批处理文件的路径
pushd "%~dp0"
cmd /c java -jar myjar.jar -f "%~1"
我知道myjar.jar是相对的,但是相对于什么呢?到拖放批次或相对于拖放批次的%1路径。删除的文件会导致在批处理脚本末尾隐含绝对路径,或者应该显式发出该文件以恢复目录堆栈状态?谢谢,这非常有效:)@Andriy当我再次启动脚本时,它会在我的user dir上下文中运行again@AndriyM:POPD用于要求的正常路径还原,或者setlocal也可以解决它,但不是在任务结束时batch@mephi,@jeb:我明白了,这不是强制性的,在这种情况下也不需要。谢谢