A program that creates a JAR file

Hello,
I want my program to generate a JAR file with the content of a folder, by I just don't know how to to this.
I don't find any help about this and I wonder if it is possible.
Can someone help me ?
Does someone know if it is possible to create a jar in a program, and if yes, how to do ?
Thanks a lot
Lio

(I think Lio wanted to create a .jar file in his program, rather than an external program that could create files for him?) The java.util.jar package has classes for creating jar files. They are quite easy to use. You can use this code as a reference:
http://javaalmanac.com/egs/java.util.zip/CreateZip.html
(nevermind the fact that the code creates a Zip file rather than a Jar file; the API is so similar you can just replace every occurence of 'zip' with 'jar')

Similar Messages

  • Creating a JAR File for a program that depends on other JAR files

    Hi, I'm pretty new to this so it shouldn't be terribly hard to answer:
    I have a program which uses JGoodies. There are 2 JGoodies .jar files in the same directory as my program. So I compile it by doing:
    javac -extdirs . NameOfMyProgram.java
    First off, is this the best way to do it? Is there any way of 'calling' these JAR files from within NameOfMyProgram.java?
    Secondly, if I then try to run it by doing java NameOfMyProgram, it doesn't work; can't find the JGoodies stuff. I end up having to add the classpaths of the unzipped JGoodies directories.
    So I have 2 questions:
    1. How can I execute my file so that it reads from the JAR files, not the big expanded folders that I unzipped?
    2. How can I create a JAR file that reads the JGoodies files properly? Right now, I have a Manifest.txt file that looks like:
    Main-Class: NameOfMyProgram
    Class-Path: forms-1.0.5.jar
    Class-Path: looks-1.3.1.jar
    Thanks a lot for your help!

    - learn how to use mysql JDBC
    - pack JDBC driver only
    - remotely access your DB
    - set proper security level for your app

  • Program not executing in jar file. Help please.

    I went through the tutorial about jars on the sun website and i created a jar file with a hello world program like this:
    "cd E:\Batch
    jar cfm test.jar m.txt test.class
    PAUSE"
    My m.txt contains this text:
    "Main-Class: test.class"
    The jar file is created. No errors.
    Then i try and run the jar with this:
    "cd E:\Batch
    java -jar test.jar
    PAUSE"
    I get "NoClassDefFoundError: test/class"
    All the dos command are run form batch files and everything is in the same directory.
    I've searched around google and this website for answers but i have failed to find anything.
    Does anyone have any suggestions i can try to fix this? I've ran out of ideas.

    Ah thats what the problem was. That was driving me
    mad thanks. So whatever you put in a jar file must be
    in a package or you can't run it.
    Message was edited by:
    JahvahNo. You can also not put it in a package, but when you specify the main-class attribute in the manifest file, be sure that you don't tell it that it is in a package.

  • Help on creating a jar file

    I created a game and I need help on creating a jar file.
    I know the basics such as having a root folder, a manifest file and what goes in it, etc. And I know some programs like JGrasp can do the jar file for you, but it tells me it cannot find the main class. Does anybody know another program that can do that for me, or can i easily do it manually?
    any help is appreciated

    You can use jar.exe to create jar files.
    Just type jar and hit enter on the console it will give the help message about parameters.
    if you do not really need to put any spesific menifest information. Just zip the files using some zip software and change the extenction to jar. (Thats what I am doing most of the time)

  • I Can't Create my jar File

    I have a package called voiceexpert which contains three classes: Disease, DiagnosingEngine and Symptoms which is a JavaBean. Symptoms makes use of Disease and DiagnosingEngine objects.
    voiceexpert is stored in the directory: c:\diagapp3
    I compiled Symptoms.java as below:
    c:\diagapp3> javac -d . Symptoms.java
    The class files for Disease.java, DiagnosingEngine.java and Symptoms.java are placed in the directory: voiceexpert.
    I created a Manifest.txt file inside c:\diagapp3 containing the following:
    Main-Class:voiceexpert.voiceexpert.Symptoms
    Name:voiceexpert/Symptoms.class
    Java-Bean:True
    I later created the jar file with the command:
    jar cfm jjj.jar Manifest.txt voiceexpert\*.*
    But, I am having the error message: "*invalid header field*".
    What can I do to remove this error?
    Note: I created the Manifest.txt using utf-8 encoding. My code is to be used in a third-party application and that is why it does not contain a main method.
    The link I was referred to could not help me. I need help please!
    Edited by: Adeyi on Feb 24, 2010 2:26 AM
    Edited by: Adeyi on Feb 24, 2010 2:34 AM

    Adeyi wrote:
    ..I created a Manifest.txt file inside c:\diagapp3 containing the following:
    Main-Class:voiceexpert.voiceexpert.Symptoms
    Note: I created the Manifest.txt using utf-8 encoding. My code is to be used in a third-party application and that is why it does not contain a main method.Why are you specifying a main-class when the API has none?
    The link I was referred to..What link? Just imagine for the moment that the Internet is a big place and we are not psychic.

  • Problem in Creating a jar file using java.util.jar and deploying in jboss 4

    Dear Techies,
    I am facing this peculiar problem. I am creating a jar file programmatically using java.util.jar api. The jar file is created but Jboss AS is unable to deploy this jar file. I have also tested that my created jar file contains the same files. When I create a jar file from the command using jar -cvf command, Jboss is able to deploy. I am sending the code , please review it and let me know the problem. I badly require your help. I am unable to proceeed in this regard. Please help me.
    package com.rrs.corona.solutionsacceleratorstudio.solutionadapter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.jar.JarEntry;
    import java.util.jar.JarOutputStream;
    import java.util.jar.Manifest;
    import com.rrs.corona.solutionsacceleratorstudio.SASConstants;
    * @author Piku Mishra
    public class JarCreation
         * File object
         File file;
         * JarOutputStream object to create a jar file
         JarOutputStream jarOutput ;
         * File of the generated jar file
         String jarFileName = "rrs.jar";
         *To create a Manifest.mf file
         Manifest manifest = null;
         //Attributes atr = null;
         * Default Constructor to specify the path and
         * name of the jar file
         * @param destnPath of type String denoting the path of the generated jar file
         public JarCreation(String destnPath)
         {//This constructor initializes the destination path and file name of the jar file
              try
                   manifest = new Manifest();
                   jarOutput = new JarOutputStream(new FileOutputStream(destnPath+"/"+jarFileName),manifest);
              catch(Exception e)
                   e.printStackTrace();
         public JarCreation()
         * This method is used to obtain the list of files present in a
         * directory
         * @param path of type String specifying the path of directory containing the files
         * @return the list of files from a particular directory
         public File[] getFiles(String path)
         {//This method is used to obtain the list of files in a directory
              try
                   file = new File(path);
              catch(Exception e)
                   e.printStackTrace();
              return file.listFiles();
         * This method is used to create a jar file from a directory
         * @param path of type String specifying the directory to make jar
         public void createJar(String path)
         {//This method is used to create a jar file from
              // a directory. If the directory contains several nested directory
              //it will work.
              try
                   byte[] buff = new byte[2048];
                   File[] fileList = getFiles(path);
                   for(int i=0;i<fileList.length;i++)
                        if(fileList.isDirectory())
                             createJar(fileList[i].getAbsolutePath());//Recusive method to get the files
                        else
                             FileInputStream fin = new FileInputStream(fileList[i]);
                             String temp = fileList[i].getAbsolutePath();
                             String subTemp = temp.substring(temp.indexOf("bin")+4,temp.length());
    //                         System.out.println( subTemp+":"+fin.getChannel().size());
                             jarOutput.putNextEntry(new JarEntry(subTemp));
                             int len ;
                             while((len=fin.read(buff))>0)
                                  jarOutput.write(buff,0,len);
                             fin.close();
              catch( Exception e )
                   e.printStackTrace();
         * Method used to close the object for JarOutputStream
         public void close()
         {//This method is used to close the
              //JarOutputStream
              try
                   jarOutput.flush();
                   jarOutput.close();
              catch(Exception e)
                   e.printStackTrace();
         public static void main( String[] args )
              JarCreation jarCreate = new JarCreation("destnation path where jar file will be created /");
              jarCreate.createJar("put your source directory");
              jarCreate.close();

    Hi,
    I have gone through your code and the problem is that when you create jar it takes a complete path address (which is called using getAbsolutePath ) (when you extract you see the path; C:\..\...\..\ )
    You need to truncate this complete path and take only the path address where your files are stored and the problem must be solved.

  • How to create a jar file which is in the remote system?

    Hi,
    I have a set of files that resides in a remote system,which have to be "jar"red. I have a firewall in between. I want to create a jar file out of the files situated in the remote system.How do i go about this process.?

    Hi,
    You can't do that in a simple way. You need to have a port open in the firewall, and you need to have a server process on the remote machine.
    Kaj

  • Exception while creating a jar file for bean

    Friendz,
    I am getting this error whenever i tried to create a jar file.
    I am using win 98 os and jdk1.4 please tell me what error it is
    C:\bean\programs\spectrum>jar cfm a.jar manifest.mft spectrum.class
    java.io.IOException: invalid header field
    at java.util.jar.Attributes.read(Attributes.java:355)
    at java.util.jar.Manifest.read(Manifest.java:162)
    at java.util.jar.Manifest.<init>(Manifest.java:52)
    at sun.tools.jar.Main.run(Main.java:124)
    at sun.tools.jar.Main.main(Main.java:904)
    Contents of manifest template file:
    Name:spectrum.class
    Java-Bean:True

    Manifests are saved with the .mf file extension. Rename your manifest mainfest.mf.

  • Create a jar file using the jar tool

    Hello all,
    can somebody help me with this situation:
    I use the following comand
    jar cfm Seti.jar manifest.mf SetiSeti.jar is the name of the file I want to create and Seti is the name of the folder where I have the class files, the manifest file and the Seti.java. The manifest file is also out of this folder (exactly the folder were I use the command on the command line).
    After creating the jar... I try to run it but it gives an error message: "can't find the main class..."
    The content of the manifest file is:
    "Manifest-Version: 1.0
    Main-Class: Seti
    I'd never created a jar file before and have already read all the usefull information here and at sun... I'm very preoccupied with this..
    Can you help?
    Thanks

    RuiAranhaJava wrote:
    How do I do this?
    "And you have to name that package as well when you name the main class in the manifest. "
    But, as I have told the name of the package is SetiNo, you just told us that the name of your class is Set. You never told us about the name of the package.
    Simples question possible: Does your class look something like this:
    package Seti;
    // maybe there are some import statements here, maybe not
    public class Seti {
      // maybe there's something here, maybe not
      public static void main(String[] args) {
        // anything
    }If so, then the fully qualified name of your class is "Seti.Seti" and you need to write that into the Main-Class attribute. (*)
    If there is no package-Statement, then the fully qualified name of your class is simply "Seti" and the Main-Class attribute is correct, but your classes are in the wrong place.
    Edit:
    (*) Please note that package names should generally be all-lowercase, so it should be "seti" instead of "Seti". This helps distinguish it from the simple names of classes, so it's easy to see what you are talking about at a glance: "seti" would be the package, "Seti" the class name.

  • Create a jar file

    Hello everybody! :) I really need your help.
    I have Tom.class
    I want to create a jar file.
    I use eclipse, so I created jar file there. I got MarkTven.jar in which:
    Tom.class
    .project
    .classpath
    MATA-INF / MANIFEST.MFin MANIFEST.MF:
    Manifest-Version: 1.0
    Main-Class: Tomclicking at MarkTven.jar I get:
    Invalid or corrupted jar file.Help me please.
    Message was edited by: ghost:))

    I have to say, that although this has nothing to do with me, I'd like to pass some comment. This attitude is prevalent throughout the forums and how can people be expected to gain experience if their efforts will be down-played and you try to make them accountable for their ignorance? It's a contradiction in terms. This is a large forum with more than a lifetimes worth of reading for those of us with a life.
    America70 has given you all the information you require to develop a resolve. I think he/she was depending on you perhaps being aware of a common issue he/she may have overlooked. I would treat that as misplaced respect personally, however, you could have steered him/her towards passing you further detail of his/her issue so that the issue could be resolved. Instead, this query remains, pointlessly, filling up space and uselessly guiding other new leaners no-where.
    You guys may be offering your advice for 'free' but you are also advocates for the language in doing so. Surely you should be making greater efforts to promote the language instead of forcing people to steer clear of attempting to expand their knowledge? It's just an opinion...
    *free - I use this term loosely because the cost to the learner is far from free, the expense being the mentors ego.
    In reference to the above post, America70 had simply made a typo in his/her query to you, not mis-spelt it in his/her implementation; he/she explained that. If he/she is required to add more detail, then politely ask him/her to. America70 also pointed out that he/she had followed the tutorial. It is obvious he/she has mis-read, mis-understood, or badly-impemented something. He/she has obviously overlooked this and is unable to discover the fault. It's not rocket science. If you people can't positively add to this post then what is your use as a helper/teacher?
    Edited by: chewzLife on May 18, 2008 7:50 PM
    Edited by: chewzLife on May 18, 2008 7:51 PM

  • Creating a jar file

    Hello all. I am trying to create a jar file for a *"hello world"* program. I compiled the code using netbeans and created the jar file from the HelloWorld.class. I added the main class to the manifest with the following line
    Main-Class: helloworld.HelloWorld
    Ensured there was a carriage return just before the end of the file.
    When I run the program I get the following error:
    h1Exception in thread "main" java.lang.NoClassDefFoundError: helloworld/HelloWorld*
    Please help

    I tried the last command it produced this error
    *C:\Documents and Settings\oshonowo\My Documents\Projects\DOS>set JAVA_HOME=c:/Pr
    ogram Files/Java/jdk1.6.0_03
    C:\Documents and Settings\oshonowo\My Documents\Projects\DOS>set classpath=C:\Pr
    ogram Files\Java\jdk1.6.0_03\lib\;C:\Program Files\Java\jre1.6.0_03\lib\ext\QTJa
    va.zip;C:\Program Files\Java\jdk1.6.0_03\jre\lib;C:\Program Files\Java\jre1.6.0_
    03\lib;%CLASSPATH%;.;C:\Documents and Settings\oshonowo\HelloWorld\build\classes
    \helloworld\Hello.jar
    C:\Documents and Settings\oshonowo\My Documents\Projects\DOS>"c:/Program Files/J
    ava/jdk1.6.0_03\bin\java" helloworld.HelloWorld
    Exception in thread "main" java.lang.NoClassDefFoundError: helloworld/HelloWorld
    C:\Documents and Settings\oshonowo\My Documents\Projects\DOS>pause
    Press any key to continue . . .*
    Please help

  • What is the command to create a jar file through Command Promt?

    Hi,
    I done my java project. Now i need to create a exe or jar file to fully complete it. I decided to create a jar file. Because, It'll support both PC and MAC. I exported my JAR file through eclipse. But that jar file loads without images and icons when it is in other directory. How can i include images folder in a JAR File.
    For ex:
    I have parent folder named "Support". Under this there is 3 subfolder namely
    bin - Classes
    src - java files
    images - image files.
    I need to create jar file to "Support" folder which should contain all the above mentioned sub folders.
    I need to execute this jar file anywhere which should not depend on the above mentioned folders which mean adding the images folder in that created jar file.
    Pls guide me for this problem.
    Thanks in advance
    Regards,
    Mohan

    But that jar file loads without images and icons when it is in other directory.Images should be accessed via a URL rather than using a filename because they will exist as entries in the jar archive not as files. Typically this URL would be obtained by using the Class method [getResource()|http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getResource(java.lang.String)]. There are details in this [Java World article|http://www.javaworld.com/javaworld/javaqa/2002-11/02-qa-1122-resources.html].

  • Icons disappear when creating a jar file.

    I am trying to make a runable jar file of an application that i wrote however, when i export it from eclipse the icons no longer appear. All of the icons are contained in a class called gridGui. Any help would be great.
    Thanks
         //Creates all of the icon files used for the buttons
         Icon fiftyCents = new ImageIcon("Fifty_Cents.gif");
         Icon oneDollar = new ImageIcon("One_Dollar2.gif");
         Icon twoDollar = new ImageIcon("Two_Dollar.gif");
         Icon threeDollar = new ImageIcon("Three_Dollar.gif");
         Icon fiveDollar = new ImageIcon("Five_Dollar.gif");
         Icon tenDollar = new ImageIcon("Ten_Dollar.gif");
         Icon freePlay = new ImageIcon("Free_Play.gif");
         Icon blank = new ImageIcon("Blank.gif");
         Icon unflipped = new ImageIcon("UnFlipped.gif");
         Icon oneDollarCoupon = new ImageIcon("One_Dollar_Coupon.gif");
         Icon threeDollarCoupon = new ImageIcon("Three_Dollar_Coupon.gif");
         Icon tShirt = new ImageIcon("TShirt.gif");
         Icon youLose = new ImageIcon("You_Lose.gif");

    You are using the ImageIcon constructor that takes a file name argument. When you create the jar file the source for the images are no longer files but entries in your jar file. You have to access them using the ImageIcon constructor that takes a URL argument.
    The actual URL you use is obtained (eg) from the Class method [getResource()|http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getResource(java.lang.String)].
    Suppose your Fifty_Cents.gif was in your jar file in the folder "images" then you could say:
    Icon fiftyCents = new ImageIcon(getClass().getResource("/images/Fifty_Cents.gif");Note the use of forward slashes and the fact that Fifty_Cents.gif has to be capitalised exactly as it is within the jar file.
    There are other ways of organising the resources - see the getResource() documentation for details.

  • How to create executable jar files??

    how to create executable jar files??
    thx :)

    Using JAR Files to Deploy
    http://developer.java.sun.com/developer/onlineTraining/Programming/BasicJava2/jar.html#jar

  • WTK 2.5 doesn't create the jar file

    Please help me! I'm using wtk2.5 and it's doesn't creates the jar file.
    The classes are created and the program run's in the test phone, but the jar file is not created...
    Any ideas...?
    Please help!
    Thank you
    Message was edited by:
    tprimus83

    I found something.
    "simply building does not create a package. Try Project -> Package -> create package.
    hth
    Kay "
    Thank you Kay i woul'd try it

Maybe you are looking for