Придушення повідомлення "Підібрали _JAVA_OPTIONS"


13

Я використовую _JAVA_OPTIONS, щоб встановити деякі параметри за замовчуванням для Java на RHEL. Це добре працює, але тепер кожного разу, коли я запускаю Java, я отримую таке повідомлення

 Picked up _JAVA_OPTIONS: -foo -bar -baz

чи можливо зберегти параметри, але придушити показ цього повідомлення.

Відповіді:


11

Яву часто називають абсолютними шляхами на кшталт /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 зображення , і я втомився від всіх червоних під час docker build- але я перейменував ${JAVA_HOME}/bin/javaв java2і поставити модифіковану версію цього скрипта в там javachmod +x). Працював як шарм!
BrainSlugs83

2

Або ви можете помістити це в файли запуску оболонки / профілі:

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

що працює лише при прямому виклику java ...через командний рядок. всі виклики Java через сценарії чи інші батьківські процеси не будуть впливати
літаючі вівці

ну, ви можете змінити / bin / java, щоб бути сценарієм оболонки, який робить те саме, якщо ви дійсно хочете.
spelufo

навіть якщо ви цього не зробите, налаштування буде скасовано, тому інші команди також будуть впливати. Це замовчить їх, не передаючи їм жодних варіантів :).
spelufo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.