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

3967

被折叠的 条评论
为什么被折叠?



