用JAVA_OPTS env变量运行java

时间:2010-01-06 06:34:13

标签: java shell remote-debugging jvm-arguments

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

2 个答案:

答案 0 :(得分:83)

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

答案 1 :(得分:47)

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

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

java $JAVA_OPTS -jar analyse.jar $*

应该“正常工作”。