Menekan pesan "Mengambil _JAVA_OPTIONS"


13

Saya menggunakan _JAVA_OPTIONS untuk menetapkan beberapa default untuk Java di RHEL. Ini berfungsi dengan baik tetapi sekarang setiap kali saya mulai java saya mendapatkan pesan berikut

 Picked up _JAVA_OPTIONS: -foo -bar -baz

apakah mungkin untuk mempertahankan opsi tetapi menekan tampilan pesan ini.

Jawaban:


11

Java sering disebut dengan path absolut seperti /usr/bin/java, yang membuat jawaban ini tidak berguna dalam beberapa kasus, dan membutuhkan lebih banyak untuk membuatnya bekerja di yang lain.

Solusi yang saya temukan memerlukan penulisan skrip shell pembungkus yang mengarahkan ulang STDERR melalui filter menghapus garis yang menyinggung. Itu harus ditempatkan di $PATHsebelum java binary membungkusnya dan dipanggil dengan plain java, which javaatau serupa (atau alat Anda harus dikonfigurasi untuk menggunakannya)

Itu bergantung pada kemampuan bash untuk membuat subkulit dengan tanda kurung (command), dan mengarahkan STDERR java ke STDIN-nya command1 2> >(command2). Akhirnya, proses dalam subkulit perlu mengarahkan ulang input yang difilter ke STDOUT lagi sehingga program java masih dapat menggunakan STDERR.

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

Mungkin praktik yang mengerikan, tapi itu untuk gambar buruh pelabuhan dan saya bosan dengan semua merah selama docker build- tapi saya berganti nama ${JAVA_HOME}/bin/javamenjadi java2dan menempatkan versi modifikasi dari skrip ini di sana sebagai java(dengan chmod +x). Bekerja seperti pesona!
BrainSlugs83

2

Atau Anda dapat meletakkan ini di startup shell / file profil Anda:

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

yang hanya berfungsi saat memohon langsung java ...melalui baris perintah. semua doa java melalui skrip atau proses induk lainnya tidak akan terpengaruh
terbang domba

baik, Anda dapat mengubah / bin / java menjadi skrip shell yang melakukan hal yang sama jika Anda benar-benar menginginkannya.
spelufo

bahkan jika Anda tidak melakukannya akan membatalkan pilihan, jadi perintah lain akan terpengaruh juga. Ini akan membungkam mereka dengan tidak memberikan mereka opsi :).
spelufo
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.