java 如何在OnOutOfMemoryError中传递参数

xytpbqjk  于 2023-08-01  发布在  Java
关注(0)|答案(1)|浏览(56)

在我的shell脚本中,我在OnOutOfMemoryError上设置命令,所以当我只传递Cloud_Metrix. sh时,它可以工作,但当我传递Cloud_Metrix. sh $runtime_params时,它不工作,我想传递参数

if [[ $SERVICE_NAME == "abc" ]]; 
then
  runtime_params="hello"
  JAVA_OPTS+=" -XX:OnOutOfMemoryError=\"Cloud_Metrix.sh $runtime_params\""
fi

字符串

gkn4icbw

gkn4icbw1#

看起来您正试图设置JAVA_OPTS环境变量,以指定Java虚拟机中发生OutOfMemoryError时的行为。但是,在JAVA_OPTS变量中传递参数的方式可能存在问题。
当您使用JAVA_OPTS+=”-XX:OnOutOfMemoryError=“Cloud_Metrix.sh $runtime_params””行时,必须确保在设置$runtime_params变量时对其进行了正确的扩展。为此,您可以在整个字符串周围使用单引号而不是双引号:

bash

if [[ $SERVICE_NAME == "abc" ]]; 
then
  runtime_params="hello"
  JAVA_OPTS+=" -XX:OnOutOfMemoryError='Cloud_Metrix.sh $runtime_params'"
fi

字符串
使用单引号将阻止$runtime_params的立即展开,因此当使用JAVA_OPTS变量时,它将在稍后进行计算。此外,在此上下文中,无需转义Cloud_Metrix.sh $runtime_params周围的双引号。
现在,当您将JAVA_OPTS传递给Java进程时,它应该正确地包含OnOutOfMemoryError行为以及Cloud_Metrix.sh脚本和runtime_params参数。

相关问题