Яву часто називають абсолютними шляхами на кшталт /usr/bin/java, що робить цю відповідь марною в одних випадках і вимагає більше, щоб вона працювала в інших.
Це рішення, яке я знайшов, вимагає написання сценарію оболонки для обгортки, який перенаправляє STDERR через фільтр, видаляючи порушуючий рядок. Він повинен бути поміщений в $PATHперед Явою двійковим це обертає і викликаються з простим java, which javaабо аналогічним (або вашим інструментом повинен бути налаштований для використання його)
Він покладається на здатність bash створити підзаголовки з дужками (command)і перенаправити STDERR Java на його STDIN command1 2> >(command2). Нарешті, процес в підпакеті повинен знову перенаправити свій відфільтрований вхід на STDOUT, щоб програми Java все ще могли використовувати STDERR.
#!/bin/bash
/usr/bin/java "$@" 2> >(grep -v "^Picked up _JAVA_OPTIONS:" >&2)
docker build- але я перейменував${JAVA_HOME}/bin/javaвjava2і поставити модифіковану версію цього скрипта в тамjava(зchmod +x). Працював як шарм!