Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6595245
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T17:54:55+00:00 2026-05-25T17:54:55+00:00

Edit : After reviewing the play, the example I used below is a tad

  • 0

Edit: After reviewing the play, the example I used below is a tad misleading. I am looking for the case where I have two 3rd party jars (not homegrown jars where I have access to the source code) that both depend on different versions of the same jar.


Original:
So I’ve recently familiarized myself with what OSGi is, and what (“JAR Hell”) problems it addresses at its core. And, as intrigued as I am with it (and plan on migrating somewhere down the road), I just don’t have it in me to begin learning what it will take to bring my projects over to it.

So, I’m now lamenting: if JAR hell happens to me, how do I solve this sans OSGi?

Obviously, the solution would almost have to involve writing my own ClassLoader, but I’m having a tough time visualizing how that would manifest itself, and more importantly, how that would solve the problem. I did some research and the consensus was that you have to write your own ClassLoader for every JAR you produce, but since I’m already having a tough time seeing that forest through the trees, that statement isn’t sinking in with me.

Can someone provide a concrete example of how writing my own ClassLoader would put a band-aid on this gaping wound (I know, I know, the only real solution is OSGi)?

Say I write a new JAR called SuperJar-1.0.jar that does all sorts of amazing stuff. Say my SuperJar-1.0.jar has two other dependencies, Fizz-1.0.jar and Buzz-1.0.jar. Both Fizz and Buzz jars depend on log4j, except Fizz-1.0.jar depends on log4j-1.2.15.jar, whereas Buzz-1.0.jar depends on log4j-1.2.16.jar. Two different versions of the same jar.

How could a ClassLoader-based solution resolve this (in a nutshell)?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T17:54:55+00:00Added an answer on May 25, 2026 at 5:54 pm

    If you’re asking this question from an “I’m building an app, how do I avoid this” problem rather than a “I need this particular solution” angle, I would strongly prefer the Maven approach – namely, to only resolve a single version of any given dependency. In the case of log4j 1.2.15 -> 1.2.16, this will work fine – you can include only 1.2.16. Since the older version is API compatible (it’s just a patch release) it’s extremely likely that Fizz 1.0 won’t even notice that it’s using a newer version than it expected.

    You’ll find that doing this will probably be way easier to debug issues with (nothing confuses me like having multiple versions of even classes or static fields floating around! Who knows which one you’re dealing with!) and doesn’t need any clever class loader hacks.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

EDIT: after reading the answers below and looking at all the guides i am
I've got a treeview control, and have caught its after-label-edit event. I want to
I have an application that uses MSWord automation to edit some documents, after they
SEE EDIT UPDATES BELOW. Original question has been modified! I have a working window
Edit: After addressing some issues that may or may not have been causing problems,
I am using some 3rd party libraries in my solution and have saved these
EDIT: After realizing I have to make things public so to speak this is
EDIT: After taking adivce I have rearranged the parameters & types. But the application
* edit * After reinstalling the module, everything worked fine. I have installed a
What is Lazy Loading? [Edit after reading a few answers] Why do people use

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.