#!/usr/bin/env bash set -e OUT=jar MAIN_CLASS=de.unitrier.st.uap.w25.tram.Main JAR_NAME=tram.jar LIB=lib TMP=$OUT/tmp # Clean and prepare rm -rf "$OUT" mkdir -p "$TMP" # 1. Compile sources if [ -d "$LIB" ]; then javac -d "$TMP" -cp "$LIB/*" $(find src -name "*.java") else javac -d "$TMP" $(find src -name "*.java") fi # 2. Unpack dependency jars if [ -d "$LIB" ]; then for jar in "$LIB"/*.jar; do [ -f "$jar" ] && jar xf "$jar" -C "$TMP" done fi # 3. Create manifest echo "Main-Class: $MAIN_CLASS" > "$TMP/MANIFEST.MF" # 4. Package into single jar jar cfm "$OUT/$JAR_NAME" "$TMP/MANIFEST.MF" -C "$TMP" . # 5. Clean temporary files rm -rf "$TMP" echo "Built: $OUT/$JAR_NAME" echo "Run with:" echo " java -jar $OUT/$JAR_NAME"