aspose file tools*
The moose likes Beginning Java and the fly likes Package Java app that uses MySQL Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Package Java app that uses MySQL" Watch "Package Java app that uses MySQL" New topic
Author

Package Java app that uses MySQL

Shigeru Miyamoto
Greenhorn

Joined: May 14, 2006
Posts: 4
I've written a Java application that uses a MySQL database. When i jar up the whole project it runs the GUI fine but it cant access the database. Im guessing it cant find the MySQL jar file its clearly going to need. Its using "mysql-connector-java-3.1.8-bin.zip".

Someone gave me this solution here:
***************
Create a directory, say it is C:\dev. From here out you will be using the command line.

Within that directory you will have the following:

src\yourPackageName\yourCode.java <-- your source code
classes <-- empty directory for now
lib\mysql-connector-java-3.1.12-bin.jar <--or whatever version you have - make the dir and copy the jar in here

Now, from the C:\dev directory compile your java code with something like

javac -d classes -classpath lib\mysql-connector-java-3.1.12-bin.jar src\yourPackageName\yourCode.java

This should create the file classes\yourPackageName\yourCode.class

Now, cd to classes.

Do a jar -xf ..\lib\mysql-connector-java-3.1.12-bin.jar

Now do a jar -cvf ..\yourJarName.jar *

cd ..

java -cp yourJarName.jar yourPackageName.yourCode will now run your code with MySQL.

***************
Thisworked, and the program runs from the command line BUT i wanted to be able to package up the program into a jar so i could simply install MySQL on a friends computer, then throw the jar onto his desktop so he can just double-click that to run the program. If i try double-click the jar file that was created i get a manifest error, saying it cant load the manifest attribute Main-Class.
Bare in mind the whole idea of this is so i can give this program to a friend that can put the program (the jar) anywhere on his computer and it will run without having to use the command line.

So basically, can someone give me a simple noobs step by step guide on how i can package up my Java application so it will still be able to access the MySQL database, WITHOUT having to use the command line to run it? This seems like a common thing to want to do, to be able to package up your java application after you made it! I refuse to believe nobody has ever made a java app that uses a DB and never wanted to package it up to give to a noob to run it.

Thanks.
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14111
    
  16

You want to make an executable JAR (one that you can double click to run).

To do that, you need to include a manifest file in your JAR file, that specifies the main class of your application. Basically, you have to create a text file (the manifest file) that contains the following line:

Main-Class: pkgname.MainClassName

(use your package and main class name, ofcourse). When you make the JAR file, use the "m" option and specify the mainfest file:

jar cmf myManifestFile myFile.jar ...

See the documentation of the JAR tool for more information.


Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 7 API documentation
Scala Notes - My blog about Scala
marc weber
Sheriff

Joined: Aug 31, 2004
Posts: 11343

"Shingsy,"

Welcome to JavaRanch!

Please revise your display name to meet the JavaRanch Naming Policy. To maintain the friendly atmosphere here at the ranch, we like folks to use real (or at least real-looking) names, with a first and a last name.

You can edit your name here.

Thank you for your prompt attention, and enjoy the ranch!

-Marc


"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer
sscce.org
Shigeru Miyamoto
Greenhorn

Joined: May 14, 2006
Posts: 4
Its 'Shigsy' not 'Shingsy'. Anyway, its short for Shigeru Miayamoto because i thought that was a little long
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18717
    
  40

Originally posted by Shigsy:
Its 'Shigsy' not 'Shingsy'. Anyway, its short for Shigeru Miayamoto because i thought that was a little long


You do know that many programmers are video gamers... What are the odds that a sheriff won't know that it is an obviously fake name?

Henry


Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
Shigeru Miyamoto
Greenhorn

Joined: May 14, 2006
Posts: 4
Well 'Henry', if that is your real name, your not a mod so I don't see why you brought it up. Anyway, who is to say your name is not John or Bill.
Can we get this back on topic please, back to the original problem/question?
Thanks.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41525
    
  53
Henry brought it up because he cares about the community here. As do many other people, some moderators, some not, including Marc Weber who pointed out the naming policy and asked you to change your name accordingly. This is one of the few rules we have here, and we take it seriously. Some community members may even be less helpful than they might if they see it violated.


Ping & DNS - my free Android networking tools app
Shigeru Miyamoto
Greenhorn

Joined: May 14, 2006
Posts: 4
ok.... so, back on topic please!
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Package Java app that uses MySQL