使用 JAVA_OPTS 环境变量运行 java 没有效果

问题描述 投票:0回答:3

在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 环境变量似乎没有任何影响,因为我无法连接到远程调试,并且我看到 JVM 的内存没有变化。

可能是什么问题?

PS:我无法在

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

java shell remote-debugging jvm-arguments
3个回答
104
投票

您可以设置

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


60
投票

我不知道有哪个 JVM 会真正检查

JAVA_OPTS
环境变量。通常这用在启动 JVM 的脚本中,并且通常只是将其添加到
java
命令行中。

这里要理解的关键一点是,在

java
位之前-jar analyse.jar的参数只会影响JVM,并且
不会
传递给您的程序。因此,将脚本中的 java 行修改为:

java $JAVA_OPTS -jar analyse.jar $*

应该“只是工作”。


2
投票

© www.soinside.com 2019 - 2024. All rights reserved.