Mar*_*ger 5 java windows parameters batch-file
我是Windows批处理编程的新手.我想要实现的是为Java应用程序编写启动脚本.然而,它并没有启动Java应用程序,而是打印出来
用法:java [-options] class [args ...]
(执行课程)
或java [-options] -jar jarfile [args ...]
(执行jar文件)
...
这表示我的参数未被正确识别.
这是我的MCVE for not-working script:
set memory=600000
java -XX:OnOutOfMemoryError="taskkill /PID %p" -Xmx%memory%K -jar MyApp.jar
Run Code Online (Sandbox Code Playgroud)
在实际场景中,memory计算为应用程序设置最佳最大堆大小.
省略其中一个参数会使应用程序启动.所以
java -XX:OnOutOfMemoryError="taskkill /PID %p" -jar MyApp.jar
Run Code Online (Sandbox Code Playgroud)
和
set memory=600000
java -Xmx%memory%K -jar MyApp.jar
Run Code Online (Sandbox Code Playgroud)
工作,但我需要两个参数在一个调用中工作.
如果将@echo on和放入@echo off脚本中,您可以看到实际执行的命令。
你说生成的命令是:
java -XX:OnOutOfMemoryError="taskkill /PID memoryK -jar MyApp.jar
Run Code Online (Sandbox Code Playgroud)
这使得%of看起来像是%p被认为是%替换的“开头”。
除了引号不平衡之外,这意味着您实际上没有给出java运行命令 --jar MyApp.jar实际上是在字符串内部-XX:OnOutOfMemoryError。
尝试将单个替换%为%%- 根据这个问题,这就是如何%在 BAT 文件中写入文字:
java -XX:OnOutOfMemoryError="taskkill /PID %%p" -Xmx%memory%K -jar MyApp.jar
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
720 次 |
| 最近记录: |