抑制“Picked up _JAVA_OPTIONS”消息

45

我正在使用_JAVA_OPTIONS为RHEL上的Java设置一些默认值。它运行良好,但现在每次启动Java时,都会出现以下消息:

捡起了_JAVA_OPTIONS:-foo -bar -baz

是否有可能保留选项但抑制此消息的显示。


尝试将_JAVA_OPTIONS="-Djava.io.tmpdir=$HOME/tmp"定义为环境变量。来源 - Eliran Malka
1
这仍然显示了“Picked up”消息,例如:JAVA_OPTIONS="-Djava.io.tmpdir=$HOME/tmp" java 会给我 Picked up _JAVA_OPTIONS: -Djava.io.tmpdir=/home/foouser/tmp - Carcophan
7
我在超级用户网站重新提出并回答了这个问题,希望它有用。 - flying sheep
不要在这里放置密码。相反,应该将其用于一般选项,并将密码作为参数传递给脚本。 - Jus12
2个回答

34

从查看相关源代码(openjdk中的arguments.cpp,第2492行)来看,没有办法控制此消息的输出。

我能说的唯一一件事是,它被打印到了stderr。因此,您可以包装您的命令以将stderr重定向到/dev/null(如果您在stderr上没有其他关注的内容)。

  • 或编写一个java包装脚本来过滤此消息。
  • 或向openjdk项目提交功能请求,尽管这不会解决您的即时问题。

3
禁止选项输出的语法:http://superuser.com/questions/585695/suppressing-the-picked-up-java-options-message - michael
1
https://bugs.openjdk.java.net/browse/JDK-8039152 不会修复 - Vadzim

13

你设置了_JAVA_OPTIONS环境变量吗?在你的.bashrc文件中吗?

可以使用别名替代,例如:

alias java="`which java` -Dwhatever"

实际上,不必知道它被设置在哪里就能使这个工作起来:

_SILENT_JAVA_OPTIONS="$_JAVA_OPTIONS"
unset _JAVA_OPTIONS
alias java='java "$_SILENT_JAVA_OPTIONS"'

1
实际上这并没有回答问题。=) - Jan.
它被设置为包装脚本的一部分,该脚本在没有设置选项的情况下以合理的最小内存量运行Java。因此,我认为我不能使用这个解决方案。 - Carcophan
@Jan 是的,它确实可以,因为问题是这样问的。我不知道更深层次的背景。对我来说它很有效,因为我遇到了同样的问题并解决了它(在bash中运行java程序时看到这个不想要的消息),所以我想把它传递下去。也许对于有着相同情况的人来说会很有用,就像这个问题一样。 - David Martin
2
我只是在寻找“unset _JAVA_OPTIONS”这个命令。 - 7kemZmani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接