使用JAVA_OPTS env 变量运行 java 没有任何效果

在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 $*


答案 1

您可以设置而不是 。这应该可以在没有 的情况下工作。_JAVA_OPTIONSJAVA_OPTS$_JAVA_OPTIONS


答案 2

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

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

java $JAVA_OPTS -jar analyse.jar $*

应该“只是工作”。


推荐