MyApp.java:
public class MyApp {
public static void main(String []args) {
//Do something with args...
}
}
compress.sh:
#!/bin/sh
#Specify your Java class here (must contain a main method)
JAVA_CMD="java MyApp"
#JAR variant (a more common approach)
#JAVA_CMD="java -jar myjar.jar"
#Map script arguments to java app arguments. Use flag specific variables, if it's more convinient for you.
while getopts "f:o:s" opt; do
case $opt in
f)
JAVA_CMD="$JAVA_CMD -f $OPTARG"
;;
o)
JAVA_CMD="$JAVA_CMD -o $OPTARG"
;;
s)
JAVA_CMD="$JAVA_CMD -s"
;;
*)
echo "Invalid usage..." >&2
exit 1;
;;
esac
done
#Additional validation (required options etc.)
#...
echo "Launching Java: $JAVA_CMD"
$JAVA_CMD
编译类,然后运行该脚本。如果您使用任何外部库,您可能需要在JAVA_CMD中包含an additional classpath argument。
如果您打算使用JAR,那么请确保您的MANIFEST.mf具有所有必需的信息(特别是有效的Main-Class条目)。进一步的说明可以找到here。
如果这是一个Maven项目,比你可以在一个简单的步骤使用Maven Assembly Plugin创建可执行的JAR。只需运行mvn程序集:程序集。