41 lines
1.0 KiB
Bash
Executable File
41 lines
1.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -x
|
|
|
|
if [ $# -ne 1 ]
|
|
then
|
|
echo Provide on jar file to convert on the command line.
|
|
exit 1
|
|
fi
|
|
|
|
REALPATH=$(realpath $0)
|
|
BIN_DIR=`dirname "$REALPATH"`
|
|
LIB_DIR=$BIN_DIR
|
|
|
|
JAR_TO_CONVERT="$1"
|
|
INPUT_DIR="$JAR_TO_CONVERT".inputdir
|
|
OUTPUT_DIR="$JAR_TO_CONVERT".outputdir
|
|
|
|
rm -rf "$INPUT_DIR"
|
|
rm -rf "$OUTPUT_DIR"
|
|
mkdir "$INPUT_DIR"
|
|
mkdir "$OUTPUT_DIR"
|
|
(cd "$INPUT_DIR"; jar -xvf $OLDPWD/"$JAR_TO_CONVERT")
|
|
|
|
java \
|
|
-Dretrolambda.bytecodeVersion=49 \
|
|
-Dretrolambda.defaultMethods=true \
|
|
-Dretrolambda.inputDir="$INPUT_DIR" \
|
|
-Dretrolambda.outputDir="$OUTPUT_DIR" \
|
|
-Dretrolambda.classpath="$JAR_TO_CONVERT" \
|
|
-Dretrolambda.javacHacks=true \
|
|
-Dretrolambda.quiet=false \
|
|
-jar "$LIB_DIR"/retrolambda-2.5.6.jar
|
|
|
|
# The order of the "m" and "f" must match the order that the
|
|
# corresponding files appear in the argument list. This is
|
|
# so stupid...
|
|
jar -cvfm "$JAR_TO_CONVERT".java5.jar \
|
|
"$OUTPUT_DIR"/META-INF/MANIFEST.MF \
|
|
-C "$OUTPUT_DIR" .
|