Suppressing the “Picked up _JAVA_OPTIONS” message
Solution 1
Java is often called with absolute paths like /usr/bin/java
, which makes this answer useless in some cases, and requires more to make it work in others.
That solution I found requires writing a wrapper shell script that redirects STDERR through a filter removing the offending line. It has to be placed in the $PATH
before the java binary it wraps and be called with plain java
, which java
or similar (or your tool has to be configured to use it)
It relies on the bash ability to create a subshell with parentheses (command)
, and redirect java’s STDERR to its STDIN command1 2> >(command2)
. Finally, the process in the subshell needs to redirect its filtered input to STDOUT again so that java programs can still use STDERR.
#!/bin/bash
/usr/bin/java "$@" 2> >(grep -v "^Picked up _JAVA_OPTIONS:" >&2)
Solution 2
Or you can put this in your shell startup / profile files:
_SILENT_JAVA_OPTIONS="$_JAVA_OPTIONS"
unset _JAVA_OPTIONS
alias java='java "$_SILENT_JAVA_OPTIONS"'
flying sheep
Updated on September 18, 2022Comments
-
flying sheep over 1 year
I'm using _JAVA_OPTIONS to set some defaults for Java on RHEL. It works fine but now every time I start java I get the following message
Picked up _JAVA_OPTIONS: -foo -bar -baz
is it possible to keep the options but suppress the display of this message.
-
flying sheep over 8 yearsthat only works when directly invoking
java ...
through the command line. all java invocations through scripts or other parent processes will be unaffected -
spelufo over 8 yearswell, you can change /bin/java to be a shell script that does the same thing if you really want to.
-
spelufo over 8 yearseven if you don't it will unset the options, so other commands will be affected too. It will silence them by not passing them any options :).
-
BrainSlugs83 almost 5 yearsProbably terrible practice, but it's for a docker image and I got tired of all the red during
docker build
-- but I renamed${JAVA_HOME}/bin/java
tojava2
and put a modified version of this script in there asjava
(withchmod +x
). Worked like a charm!