57

在一个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 $*命令中使用这些设置,因为我在应用程序中处理命令行参数。

4

2 回答 2

101

您可以设置_JAVA_OPTIONS而不是JAVA_OPTS. 这应该在没有$_JAVA_OPTIONS.

于 2012-07-23T15:48:24.780 回答
56

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

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

java $JAVA_OPTS -jar analyse.jar $*

应该“正常工作”。

于 2010-01-06T07:08:49.530 回答