使用 JAVA_OPTS 环境变量运行 java 无效

新手上路,请多包涵

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

原文由 Ashika Umanga Umagiliya 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

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

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

 java $JAVA_OPTS -jar analyse.jar $*

应该“只是工作”。

原文由 ZoogieZork 发布,翻译遵循 CC BY-SA 2.5 许可协议

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

原文由 HEX 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题