-1

你好我有一个java程序。我有一个应该执行该程序的脚本。脚本看起来像这样

sh compress.sh -f myfile.txt [-o myfile.hzip -s]

如何从我的 java 程序创建可执行文件,以便它可以从此脚本执行?

4

1 回答 1

1

MyApp.java:

public class MyApp {
   public static void main(String []args) {
        //Do something with args...
   }
}

压缩.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 中包含一个额外的类路径参数。

如果您要使用 JAR,请确保您的 MANIFEST.mf 具有所有必需的信息(尤其是有效的Main-Class条目)。进一步的说明可以在这里找到。

如果这是一个 Maven 项目,那么您可以使用Maven Assembly Plugin在一个简单的步骤中创建一个可执行的 JAR 。只需运行 mvn 程序集:程序集。

于 2013-03-17T16:51:43.243 回答