Java genellikle /usr/bin/java
bu 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 $PATH
o sarar ve sade ile çağrılabilir ikili java önce java
, which java
ya 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)
docker build
- ama adını${JAVA_HOME}/bin/java
hiçjava2
ve orada bu komut değiştirilmiş bir sürümünü koymakjava
(ilechmod +x
). Bir cazibe gibi çalıştı!