ฉันรู้ว่านี่อาจเป็นคำถามโง่ ๆ สำหรับนักเขียนโค้ดที่มีประสบการณ์ แต่ฉันมีไลบรารี (ไคลเอนต์ http) ที่เฟรมเวิร์ก / ไหอื่น ๆ ที่ใช้ในโครงการของฉันต้องการ แต่ทั้งหมดนั้นต้องการเวอร์ชันหลักที่แตกต่างกันเช่น:
httpclient-v1.jar => Required by cralwer.jar
httpclient-v2.jar => Required by restapi.jar
httpclient-v3.jar => required by foobar.jar
classloader ฉลาดพอที่จะแยกพวกมันออกหรือไม่? เป็นไปได้มากที่สุด? Classloader จัดการกับสิ่งนี้อย่างไรในกรณีที่ Class เหมือนกันในทั้งสามขวด โหลดอันไหนและเพราะอะไร
Classloader รับเพียงหนึ่งโถหรือผสมคลาสโดยพลการ? ตัวอย่างเช่นถ้าคลาสถูกโหลดจาก Version-1.jar คลาสอื่น ๆ ทั้งหมดที่โหลดจาก classloader เดียวกันทั้งหมดจะไปอยู่ใน jar เดียวกันหรือไม่
คุณจัดการกับปัญหานี้อย่างไร?
มีเคล็ดลับในการ "รวม" ไหลงใน "required.jar" เพื่อให้เห็นเป็น "หนึ่งหน่วย / แพ็กเกจ" Classloader
หรือเชื่อมโยงอย่างใด