জাভা প্রায়শই পরম পথে যেমন ডাকা হয় /usr/bin/java
, যা এই উত্তরটি কিছু ক্ষেত্রে অকেজো করে তোলে এবং অন্যকে এটি কাজ করার জন্য আরও বেশি প্রয়োজন।
আমি যে সমাধানটি পেয়েছি তার জন্য একটি মোড়কের শেল স্ক্রিপ্ট লেখা দরকার যা আপত্তিজনক লাইনটি সরিয়ে একটি ফিল্টারের মাধ্যমে এসটিডিআরআর পুনঃনির্দেশ করে। এটি $PATH
জাভা বাইনারি মোড়ানোর আগে এটি স্থাপন করতে হবে এবং সরল java
, which java
বা অনুরূপ (বা আপনার সরঞ্জাম এটি ব্যবহারের জন্য কনফিগার করতে হবে) দিয়ে কল করতে হবে)
এটি প্রথম বন্ধনীর সাথে (command)
সাবসেল তৈরি করার জন্য বাশ সক্ষমতার উপর নির্ভর করে এবং জাভা এর এসটিডিআরআরটিকে তার এসটিডিনে পুনর্নির্দেশ করবে command1 2> >(command2)
। শেষ অবধি, সাব-শেলের প্রক্রিয়াটির জন্য তার ফিল্টার করা ইনপুটটি আবার STDOUT এ পুনর্নির্দেশ করা দরকার যাতে জাভা প্রোগ্রামগুলি এখনও STDERR ব্যবহার করতে পারে।
#!/bin/bash
/usr/bin/java "$@" 2> >(grep -v "^Picked up _JAVA_OPTIONS:" >&2)
docker build
- কিন্তু আমি নতুন নামকরণ${JAVA_HOME}/bin/java
করারjava2
এবং সেখানে এই স্ক্রিপ্টের একটি পরিবর্তিত সংস্করণ করাjava
(সঙ্গেchmod +x
)। মোহন মত কাজ!