Reverse a Java ZIP into Maven Project
- Unzip the jars
unzip app.zip -d dist
mkdir classes
find dist -name '*.jar' -exec unzip -B {} -d classes ';'
- Download JAD and add to you PATH.
- Decompile classes
mkdir -p src/main/java
cd classes
find . -name '*.class' | while read F ; do D=../src/main/java/$(dirname $F); mkdir -p $D ; jad -o -s java -d $D $F ; done
cd ..
- Get resources:
mkdir -p src/main/resources
cd classes
find . -type f ! -name '*.class' | while read F ; do D=../src/main/resources/$(dirname $F); mkdir -p $D ; cp -v $F $D ; done
cd ..
- Create a nominal POM:
echo '<project><modelVersion>4.0.0</modelVersion><groupId>com</groupId><artifactId>app</artifactId> <version>1</version></project>' > pom.xml
- Compile!
mvn compile
Notes:
- If you multiple files with the same name, you’ll get multiple copies with a number suffix, e.g. MANIFEST.MF~1.
- JAD can’t always decompile files.