This week's book giveaway is in the OCMJEA forum.
We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line!
See this thread for details.
The moose likes Java in General and the fly likes How Do I Create This jar File Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCM Java EE 6 Enterprise Architect Exam Guide this week in the OCMJEA forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "How Do I Create This jar File" Watch "How Do I Create This jar File" New topic
Author

How Do I Create This jar File

femi lami
Greenhorn

Joined: Dec 01, 2003
Posts: 11
My Java code makes use of an external jar file which has been included in my classpath but not in the same directory as my project. My program is working perfectly. Now, I want to create a jar file of the project. Do I need to copy the external jar file used by my program into my project directory, or by default it will be included since the classpath has already been set to recognize it?
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 38509
    
  23
You can't use the usual methods to put jar files inside jar files. there are special tools which can do it, however.
Might be easiest to unzip the jar into the appropriate directory structure, then create a new jar or add the new .class files to your existing .jar. The Java™ Tutorials has a useful section.
femi lami
Greenhorn

Joined: Dec 01, 2003
Posts: 11
Thanks for your reply, but I think I need to explain better what I am trying to achieve.

My Java code (an expert system) embeds Jess and I need to create a "jar" file of the project. I have imported jess into my Java code using the statement "import jess.*;" and I have also included "jess.jar" in the classpath of the project. Now that I want to create a "jar" file of the application so that it will be runnable on another system having JVM, do I need to still make a jar file of the "jess.jar" file to be included in the project's jar file?

Also, my code makes use of ".clp" file in which the rules for the appliaction are stored. Do I need to include this file as part of the files needed to make the project's jar file.

Lastly, can ".java" file be inluded in the in the jar file or is it only their ".class" files that must be there?
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14116
    
  16

femi lami wrote:... do I need to still make a jar file of the "jess.jar" file to be included in the project's jar file?

Yes, you will need to distribute "jess.jar" together with your own jar file. What Campbell was explaining is that you cannot include "jess.jar" inside your own jar file with the standard JDK tools. (Java doesn't recognise jar files inside jar files). It has to be a separate jar, or you'd have to use a tool such as One-JAR to pack it all into a single jar.

femi lami wrote:Also, my code makes use of ".clp" file in which the rules for the appliaction are stored. Do I need to include this file as part of the files needed to make the project's jar file.

I don't know, that depends on how Jess works. Look it up in the documentation of Jess.

femi lami wrote:Lastly, can ".java" file be inluded in the in the jar file or is it only their ".class" files that must be there?

You do not need to put the source code ".java" files in the jar, only the compiled ".class" files are necessary to be able to run the program.

Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 7 API documentation
Scala Notes - My blog about Scala
 
jQuery in Action, 2nd edition
 
subject: How Do I Create This jar File