用JAVA_OPTS env变量运行java

Ash*_*iya 49 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 $*
Run Code Online (Sandbox Code Playgroud)

但似乎没有JAVA_OPTS env变量的影响,因为我无法连接到远程调试,我看到JVM的内存没有变化.

可能是什么问题呢?

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

HEX*_*HEX 87

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

  • _这是真正的答案.我四处看了几个小时才发现这个. (7认同)
  • 您也可以使用JAVA_TOOL_OPTIONS(http://stackoverflow.com/questions/28327620/difference-between-java-options-java-tool-options-and-java-opts) (5认同)
  • @Nerrve Special为您安装了Windows XP.工作良好.你确定你做的一切都正确吗? (3认同)
  • @Hubbitus 您的建议似乎是正确答案。你应该添加它 (2认同)
  • 我不能 我得到了“简单答案转换为评论” (2认同)

Zoo*_*ork 49

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

要了解这里的关键问题是,参数java是来之前-jar analyse.jar位只会影响JVM并不会沿着你的程序通过.因此,java将脚本中的行修改为:

java $JAVA_OPTS -jar analyse.jar $*
Run Code Online (Sandbox Code Playgroud)

应该"只是工作".