"पिकअप _JAVA_OPTIONS" संदेश को दबाएं


13

मैं जावा के लिए RHEL पर कुछ डिफॉल्ट सेट करने के लिए _JAVA_OPTIONS का उपयोग कर रहा हूं। यह ठीक काम करता है लेकिन अब हर बार जब मैं जावा शुरू करता हूं तो मुझे निम्न संदेश मिलता है

 Picked up _JAVA_OPTIONS: -foo -bar -baz

क्या विकल्प रखना संभव है लेकिन इस संदेश के प्रदर्शन को दबा दें।

जवाबों:


11

जावा को अक्सर पूर्ण पथों के साथ कहा जाता है /usr/bin/java, जो इस उत्तर को कुछ मामलों में बेकार बना देता है, और इसे दूसरों में काम करने के लिए अधिक आवश्यकता होती है।

मुझे लगता है कि समाधान एक आवरण खोल स्क्रिप्ट लिखने की आवश्यकता है कि STDERR को एक फिल्टर के माध्यम से अपमानजनक रेखा को हटा देता है। इसे $PATHजावा बाइनरी में लपेटने से पहले रखा जाना चाहिए और इसे सादे java, which javaया समान (या आपके उपकरण को इसका उपयोग करने के लिए कॉन्फ़िगर करना होगा) के साथ बुलाया जाना चाहिए

यह कोष्ठक के साथ एक उपधारा बनाने के लिए बैश करने की क्षमता पर निर्भर करता है (command), और जावा के STDERR को अपने STININ पर पुनर्निर्देशित करता है command1 2> >(command2)। अंत में, उपधारा में प्रक्रिया को इसके फ़िल्टर किए गए इनपुट को फिर से STDOUT पर पुनर्निर्देशित करने की आवश्यकता है ताकि जावा प्रोग्राम अभी भी STDOSR का उपयोग कर सकें।

#!/bin/bash
/usr/bin/java "$@" 2> >(grep -v "^Picked up _JAVA_OPTIONS:" >&2)

शायद भयानक अभ्यास, लेकिन यह एक डॉक छवि के लिए है और मैं इस दौरान सभी लाल से थक गया docker build- लेकिन मैंने नाम बदल ${JAVA_HOME}/bin/javaदिया java2और इस स्क्रिप्ट का संशोधित संस्करण वहां java(जैसे chmod +x) के साथ रखा । एक जादू की तरह काम किया!
ब्रेनस्ल्गस83 19

1

या आप इसे अपने शेल स्टार्टअप / प्रोफाइल फाइलों में डाल सकते हैं:

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

केवल तभी काम करता है जब java ...कमांड लाइन के माध्यम से सीधे इन्वोकेशन किया जाता है। स्क्रिप्ट या अन्य मूल प्रक्रियाओं के माध्यम से सभी जावा चालान अप्रभावित रहेंगे
फ्लाइंग भेड़

ठीक है, आप शेल स्क्रिप्ट बनने के लिए / बिन / जावा को बदल सकते हैं जो अगर आप वास्तव में चाहते हैं तो वही काम करता है।
स्पेलुफो

यहां तक ​​कि अगर आप ऐसा नहीं करते हैं तो यह विकल्पों को परेशान नहीं करेगा, इसलिए अन्य कमांड भी प्रभावित होंगे। यह उन्हें किसी भी विकल्प को पारित नहीं करके मौन कर देगा :)।
spelufo
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.