“Alınan _JAVA_OPTIONS” mesajının bastırılması


13

RHEL üzerinde Java için bazı varsayılanları ayarlamak için _JAVA_OPTIONS kullanıyorum. İyi çalışıyor ama şimdi java'yı her başlattığımda aşağıdaki mesajı alıyorum

 Picked up _JAVA_OPTIONS: -foo -bar -baz

seçenekleri korumak ancak bu iletinin görüntülenmesini engellemek mümkündür.

Yanıtlar:


11

Java genellikle /usr/bin/javabu gibi bazı yollarla çağrılır , bu da bu cevabı bazı durumlarda işe yaramaz hale getirir ve başkalarında çalışması için daha fazlasını gerektirir.

Bulduğum bu çözüm, rahatsız edici satırı kaldıran bir filtreden STDERR'ı yönlendiren bir sarıcı kabuk betiği yazmayı gerektirir. Bu yerleştirilmesi gerekir $PATHo sarar ve sade ile çağrılabilir ikili java önce java, which javaya da benzer (ya da aracı kullanmak için yapılandırılmış olması gerekir)

Parantezli bir alt kabuk oluşturma (command)ve java'nın STDERR'sini STDIN'a yönlendirmesi için bash yeteneğine dayanır command1 2> >(command2). Son olarak, alt kabuktaki işlemin, java programlarının hala STDERR kullanabilmesi için filtrelenmiş girdisini tekrar STDOUT'a yönlendirmesi gerekir.

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

Muhtemelen korkunç uygulama, ama bir liman işçisi görüntü için ve ben boyunca tüm kırmızı yoruldum docker build- ama adını ${JAVA_HOME}/bin/javahiç java2ve orada bu komut değiştirilmiş bir sürümünü koymak java(ile chmod +x). Bir cazibe gibi çalıştı!
BrainSlugs83

2

Veya bunu kabuk başlangıç ​​/ profil dosyalarınıza koyabilirsiniz:

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

yalnızca doğrudan java ...komut satırı üzerinden çağrıldığında çalışır . komut dosyaları veya diğer ana işlemler aracılığıyla tüm java çağrıları etkilenmeyecek
uçan koyun

/ bin / java'yı gerçekten isterseniz aynı şeyi yapan bir kabuk betiği olarak değiştirebilirsiniz.
spelufo

yapmasanız bile seçenekleri kaldırır, böylece diğer komutlar da etkilenir. Herhangi bir seçenek iletmeyerek onları susturur :).
spelufo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.