加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows批处理和java:组合-XX:OnOutOfMemoryError命令和批处理

发布时间:2020-12-14 02:51:17 所属栏目:Windows 来源:网络整理
导读:我是 Windows批处理编程的新手. 我想要实现的是为 Java应用程序编写启动脚本.然而,它并没有启动Java应用程序,而是打印出来 Usage: java [-options] class [args…] (to execute a class) or java [-options] -jar jarfile [args…] (to execute a jar file)
我是 Windows批处理编程的新手.
我想要实现的是为 Java应用程序编写启动脚本.然而,它并没有启动Java应用程序,而是打印出来

Usage: java [-options] class [args…]

(to execute a class)

or java [-options] -jar jarfile [args…]

(to execute a jar file)

这表示我的参数未被正确识别.

这是我的MCVE for not working脚本:

set memory=600000
java -XX:OnOutOfMemoryError="taskkill /PID %p" -Xmx%memory%K -jar MyApp.jar

在实际场景中,计算内存以设置应用程序的最佳最大堆大小.

省略其中一个参数会使应用程序启动.所以

java -XX:OnOutOfMemoryError="taskkill /PID %p" -jar MyApp.jar

set memory=600000
java -Xmx%memory%K -jar MyApp.jar

工作,但我需要两个参数在一个调用中工作.

解决方法

如果在脚本中打开@echo并关闭@echo,您可以看到实际执行的命令.

你说结果命令是:

java -XX:OnOutOfMemoryError="taskkill /PID memoryK -jar MyApp.jar

这使得看起来%p的%被认为是替换的“开放”%.

除了引号不平衡之外,这意味着你实际上没有给java一个命令来运行 – -jar MyApp.jar实际上在-XX:OnOutOfMemoryError字符串中.

尝试用%%替换单个% – 根据this question,这是如何在BAT文件中写入文字%:

java -XX:OnOutOfMemoryError="taskkill /PID %%p" -Xmx%memory%K -jar MyApp.jar

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读