【问题标题】:Running jar with dropped file on bat在 bat 上运行带有已删除文件的 jar
【发布时间】:2011-03-18 09:48:42
【问题描述】:

我想将文件拖放到 .bat 文件上。删除它后,我想以删除的文件路径作为输入运行一个 jar 文件。如何使用相对路径运行 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 的路径可能不同。

【问题讨论】:

  • 我知道 myjar.jar 是相对的,但相对于什么?到拖放批处理还是到 %1 路径?
  • 相对于拖放批次。删除的文件会产生一个绝对路径

标签: java batch-file jar


【解决方案1】:

也许这行得通,它将当前目录更改为批处理文件的路径

pushd "%~dp0"
cmd /c java -jar myjar.jar -f "%~1"

【讨论】:

  • POPD 隐含在批处理脚本的末尾还是应该显式发出以恢复目录堆栈状态?
  • 谢谢,这很完美:) @Andriy 当我再次启动脚本时,它再次在我的用户目录的上下文中运行
  • @Andriy M:POPD 用于需要恢复正常路径或 setlocal 也可以解决它,但不是批处理结束
  • @mephi, @jeb:我明白了,这根本不是强制性的,在这种情况下也不需要。谢谢。
猜你喜欢
  • 2017-04-06
  • 1970-01-01
  • 2019-01-20
  • 1970-01-01
  • 1970-01-01
  • 2015-11-06
  • 2014-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多