tags:

views:

491

answers:

5

Hi

I am using some classes from a JAR file and they belong to a package (Say -- com.abc.xyz).

The class am writing also belongs to that package but I won't be able to bundle my file into that JAR file. Is it possible to have classes that belong to the same package spread across multiple JAR files ?

Thanks A Java Novice

+3  A: 

I don't see why it wouldn't be possible. All that matters is that the classes are in the classpath.

John Topley
+4  A: 

By default, absolutely.

However, if you want to make sure that classes from a particular package are only loaded from one jar file, you can add that information to the manifest.

Jon Skeet
+2  A: 

It is quite doable unless the JAR has sealed the package.

gustafc
A: 

It's probably not something that you should want to do. If it's in the same package, should it not be packaged together (I believe Jigsaw intends to allow splitting packages between modules, but that's a different kettle of fish).

It can be blocked if either package is marked sealed in the manifest. I would recommend marking whole jars as sealed as a matter of course.

It can also be blocked if there are different signers on the classes and the classes are loaded by the same class loader.

If you load classes using a different class loader, although the "namespace" will be the same, you won't actually get package (and relevant part of protected) access.

Tom Hawtin - tackline
A: 

Sometimes you have to do that if you want to extend the functionality of third party libraries but they are not open sourcve and/or you don't have sources