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.
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 :).
docker build
- tapi saya berganti nama${JAVA_HOME}/bin/java
menjadijava2
dan menempatkan versi modifikasi dari skrip ini di sana sebagaijava
(denganchmod +x
). Bekerja seperti pesona!Atau Anda dapat meletakkan ini di startup shell / file profil Anda:
sumber
java ...
melalui baris perintah. semua doa java melalui skrip atau proses induk lainnya tidak akan terpengaruh