Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the maximum number of files per jar?

Tags:

java

jar

I'd like to know if there is a maximum number of files allowed per jar, after which you can have classpath issues like classes not taken into account?

like image 843
plus- Avatar asked Mar 08 '12 10:03

plus-


People also ask

Are JAR files just ZIP files?

A JAR file is essentially a zip file that contains an optional META-INF directory. A JAR file can be created by the command-line jar tool, or by using the java. util. jar API in the Java platform.

What are the JAR files in Java?

JAR stands for Java ARchive. It's a file format based on the popular ZIP file format and is used for aggregating many files into one. Although JAR can be used as a general archiving tool, the primary motivation for its development was so that Java applets and their requisite components (.

Can a jar have two main classes?

Jar files can contain only one Main-Class attribute in the manifest, which means a jar can contain only one mainClassName.

What is JAR file content?

The JAR file contains the TicTacToe class file and the audio and images directory, as expected. The output also shows that the JAR file contains a default manifest file, META-INF/MANIFEST. MF, which was automatically placed in the archive by the JAR tool.


2 Answers

The jar format is just a rebranded zip format, so it inherits the limitations of that format.

The original zip format has a limit of 65535 entries, so in total in Java 6 and earlier, you can have at most that many classes or other files, combined. Many tools also include directories as entires, and this reduces the entires available for classes and other files.

In java 7, zip64 is supported, with a much higher limit.

I suspect the failure mode, however, won't be randomly missing files, but failure at jar generation time.

like image 61
BeeOnRope Avatar answered Oct 07 '22 00:10

BeeOnRope


A .jar file is really just a .zip file with a special manifest. So the limits are the same as for .zip files

  • Up to Java 6, normal zip files are supported, with a maximum of 4gb size and 65535 files
  • From Java 7 onwards, zip64 format is supported with something like 16 exabyte capacity. this is effectively unlimited for normal use with current hardware (it's about the size of all the content on the internet)
like image 44
mikera Avatar answered Oct 07 '22 01:10

mikera