Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java command line with external .jar

I develop a project using .jar to reuse code.

So I have on .jar named TOOLS.jar, and I develop a simple application in file HelloWorld.java which refer my package TOOLS from TOOLS.jar

I compile with this command line:

javac -g -d C:\MyApp -cp TOOLS.jar HelloWorld.java 

It's successful, and when I want to execute my application I use this command (I'm in C:\MyApp folder):

java -cp <path>\TOOLS.jar;. HelloWorld 

It's successful, but my question is:

How do I execute my application when I have multiples external .jar files?

Do I have to add each one in command with -cp option?

Is there a way to generate only one binary file and execute it (as .exe with C programs)?

like image 628
TheFrancisOne Avatar asked May 20 '11 09:05

TheFrancisOne


People also ask

How do I create a JAR file with an external library?

You can right-click on the project, click on export, type 'jar', choose 'Runnable JAR File Export'. There you have the option 'Extract required libraries into generated JAR'.


1 Answers

Concatenate each jar file argument to cp with:

; on Windows : on Linux or Mac 

e.g.

java -cp <path>\TOOLS.jar;.;<path>\jar2.jar;<path>\jar3.jar HelloWorld 

on newer JVMs (6+, I think) you can also use the * to append all JARs in a directory e.g.

java -cp .;<path>\*; HelloWorld 

To go a step further and create a single packaged executable see this question.

like image 146
Joel Avatar answered Sep 28 '22 09:09

Joel