Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to turn folder into jar - Code

Tags:

java

jar

Hi im busy on a application that decompiles a jar the pastes files into the folder of the decompiled jar, it then compresses the folder into a jar.

Decompiling and copying works, but i can't manage to get the folders contents to be jared (compressed into jar), i did about 3hrs research and found only outdated methods. please help.

-Regards marko5049

EDIT MORE INFO: I apologize i mean i cant get my application to turn a folder into a jar file, my application is an modification installer for a jar file. and it extracts the jars files, then adds the modification and then, is supposed to then turn the folder back into a jar file so that the modification is installed. The jar file is not executable.

like image 720
marko5049 Avatar asked Aug 17 '13 11:08

marko5049


People also ask

Can I rename ZIP to jar?

Yes, but depending on how you need to use the jar, not every zip file is also a jar file. There may need to be a certain folder structure or manifest entries.

How can you create your own JAR file?

First create your java file as you require. Right click your project -> click on export -> select option jar, follow the dialog box. Now, you have created your own java jar file. Create your new project as you require, import that jar file as you are importing other jar files.


2 Answers

This worked for me for a MAC OSX:

Open Terminal at the folder with the jar file and run the following commands

 unzip mylib.jar -d jarfolder 

 //You can then change whatever you need and finally run the command below

 jar cvf mylib.jar -C jarfolder/ .
like image 169
Sugoi Reed Avatar answered Oct 15 '22 20:10

Sugoi Reed


Given that you want to create the JAR through code; you can use JarOutputStream for that. There is an example at this link that contains code to create a JAR file given a File[] containing all the input files.

As for creating the list of files given a starting input path, see Recursively list files in Java.

You could either build a list of files then just use code like in the above example, or you could recursively scan files and add them to the JAR as you go.

If you are using Java 7 and you know your users are too you can also use Files.walkFileTree() with a FileVisitor that adds entries to the JAR as it visits files.


Original answer before OP clarified:

Is there something wrong with:

jar cf my-application.jar folder1 folder2 folder3 etc

The JDK comes with a jar utility to create JAR files.

You can read an official tutorial on it here: Creating JAR Files. It is very straightforward.

If you want to create a runnable JAR, you can create a manifest file that has the main class and other options in it. The linked tutorial describes that process.

like image 33
Jason C Avatar answered Oct 15 '22 18:10

Jason C