How to include the jars of your project into your runnable jar:
I'm using Eclipse Version: 3.7.2 running on Ubuntu 12.10. I'll also show you how to make the build.xml
so you can do the ant jar
from command line and create your jar with other imported jars extracted into it.
Basically you ask Eclipse to construct the build.xml that imports your libraries into your jar for you.
Fire up Eclipse and make a new Java project, make a new package 'mypackage', add your main class: Runner
Put this code in there.
Now include the mysql-connector-java-5.1.28-bin.jar
from Oracle which enables us to write Java to connect to the MySQL database. Do this by right clicking the project -> properties -> java build path -> Add External Jar -> pick mysql-connector-java-5.1.28-bin.jar.
Run the program within eclipse, it should run, and tell you that the username/password is invalid which means Eclipse is properly configured with the jar.
In Eclipse go to File
-> Export
-> Java
-> Runnable Jar File
. You will see this dialog:
Make sure to set up the 'save as ant script' checkbox. That is what makes it so you can use the commandline to do an ant jar
later.
Then go to the terminal and look at the ant script:
So you see, I ran the jar and it didn't error out because it found the included mysql-connector-java-5.1.28-bin.jar
embedded inside Hello.jar
.
Look inside Hello.jar: vi Hello.jar
and you will see many references to com/mysql/jdbc/stuff.class
To do ant jar
on the commandline to do all this automatically: Rename buildant.xml
to build.xml
, and change the target name from create_run_jar
to jar
.
Then, from within MyProject
you type ant jar
and boom. You've got your jar inside MyProject. And you can invoke it using java -jar Hello.jar
and it all works.