I have a project where in one package I have made Server and in Second Package I made Client. It is working fine. I want to create a Jar file. Is it possible to run Client and Server Separately from same jar file?
I have used jar file where there is only one main and when I run jar file, it automatically runs that class. Now here I will be having 2 executable classes. I want to pack them in only one jar and then want to run both from that same jar file. Is it possible? Any Suggestions, links will be of great help.
Jar files can contain only one Main-Class attribute in the manifest, which means a jar can contain only one mainClassName.
Jarcomp is a comparison tool for Jar files and Zip files. It's free and cross-platform. If you have two jar files or two zip files, it will show you what the differences are in the contents. It shows which files have been added, which have been removed, and which are present in both archives.
To run an application in a nonexecutable JAR file, we have to use -cp option instead of -jar. We'll use the -cp option (short for classpath) to specify the JAR file that contains the class file we want to execute: java -cp jar-file-name main-class-name [args …]
The short answer is, YES!
The longer answer is that you can specify the class in your command line as well as putting the .jar in the classpath.
Assume two classes
A.class
B.class
jar them into a .jar file
jar cvf AB.jar A.class B.class
run either of them
java -classpath AB.jar A
java -classpath AB.jar B
Assuming both your Server and Client classes have main
methods, you can execute them from the command line using the following:
java -cp jarFile.jar package1.Server
java -cp jarFile.jar package2.Client
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With