Java wird oft mit absoluten Pfaden wie aufgerufen /usr/bin/java
, was diese Antwort in manchen Fällen unbrauchbar macht und mehr erfordert, damit sie in anderen funktioniert.
Diese Lösung, die ich gefunden habe, erfordert das Schreiben eines Wrapper-Shell-Skripts, das STDERR durch einen Filter umleitet, der die betreffende Zeile entfernt. Es hat in der platziert werden, $PATH
bevor die Java binäre es wickelt und mit einfachen genannt werden java
,which java
oder ähnlich (oder dem Werkzeug muss konfiguriert werden, um es zu verwenden)
Es basiert auf der bash-Fähigkeit, eine Subshell mit Klammern zu erstellen und javas (command)
STDERR auf seine STDIN umzuleiten command1 2> >(command2)
. Schließlich muss der Prozess in der Subshell seine gefilterten Eingaben erneut an STDOUT umleiten, damit Java-Programme STDERR weiterhin verwenden können.
#!/bin/bash /usr/bin/java "$@" 2> >(grep -v "^Picked up _JAVA_OPTIONS:" >&2)