gpt4 book ai didi

java - Windows 批处理 & java : Combining -XX:OnOutOfMemoryError command and batch parameters

转载 作者:可可西里 更新时间:2023-11-01 13:42:27 28 4
gpt4 key购买 nike

我对 Windows 批处理编程完全陌生。我想要实现的是为 Java 应用程序编写启动脚本。然而,它并没有启动 Java 应用程序,而是打印出来

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

(to execute a class)

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

(to execute a jar file)

...

这表明我的参数没有被正确识别。


这是我的 MCVE对于不起作用的脚本:

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 on@echo off,您可以看到实际正在执行的命令。

你说结果命令是:

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

关于java - Windows 批处理 & java : Combining -XX:OnOutOfMemoryError command and batch parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35989808/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com