Java-opts变量没生效,使用JAVA_OPTS env变量运行java无效

在Shell脚本中,作者尝试通过设置JAVA_OPTS环境变量来启用远程调试并增加JVM内存,但发现设置未生效,导致无法进行远程调试且内存分配未改变。解决方案是直接在java命令行中使用$JAVA_OPTS,即将`java-jaranalyse.jar$*`改为`java $JAVA_OPTS jaranalyse.jar $*`,这样可以确保JAVA_OPTS的设置被正确应用到JVM启动参数中。

在shell脚本中,我设置了JAVA_OPTS环境变量(以启用远程调试并增加内存),然后执行jar文件,如下所示:

export JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Xms512m -Xmx512m"

java -jar analyse.jar $*

但似乎没有JAVA_OPTS env变量的影响,因为我无法连接到远程调试,我看到JVM的内存没有变化.

可能是什么问题呢?

PS:我无法在java -jar analyse.jar $*命令中使用这些设置,因为我在应用程序中处理命令行参数.

解决方法:

我不知道任何实际检查JAVA_OPTS环境变量的JVM.通常这用于启动JVM的脚本,它们通常只是将它添加到java命令行.

这里要理解的关键是,在-jar analyse.jar位之前的java参数只会影响JVM,不会传递给您的程序.因此,将脚本中的java行修改为:

java $JAVA_OPTS -jar analyse.jar $*

应该“只是工作”.

标签:jvm-arguments,java,shell,remote-debugging

来源: https://codeday.me/bug/20190919/1813114.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值