Simply put, you can start an executable JAR directly just by double-clicking on it. On the other hand, an executable JAR can be executed directly without any external program. You can only add it as a dependency to other programs and access the classes and functions in your program. Normal JARs have no entry point, meaning you cannot directly execute this type of JAR. There are two types of JARs: normal and executable.
Packaging your application into a JAR makes it easier to distribute your program, and it also means functionalities in your program are reusable-for example, other programs can use your functionalities just by adding your JAR file as a dependency. A JAR ( Java archive) file is a platform-independent package of your application in a single archive file.