在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 $*
命令中使用这些设置,因为我在应用程序中处理命令行参数。
答案 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 $*
应该“正常工作”。