你的位置:首页 > Java教程

[Java教程]〖Linux〗将Jar文件打包成Linux可执行文件


因为不想敲写 java -jar jarfile,而是想直接敲写  ./jarfile 就能够跑起程序

 

#!/bin/bash - #===============================================================================##     FILE: shell_pack.sh# #     USAGE: ./shell_pack.sh # #  DESCRIPTION: # #    OPTIONS: ---# REQUIREMENTS: ---#     BUGS: ---#     NOTES: ---#    AUTHOR: lwq (28120), scue@vip.qq.com# ORGANIZATION: #    CREATED: 04/22/2015 02:38:01 PM CST#   REVISION: ---#===============================================================================#=== FUNCTION ================================================================#     NAME: usage# DESCRIPTION: Display usage information.#===============================================================================function usage (){    cat <<- EOT Usage : $0 [options] -p package -s script file1 file2 file3 .. Options: -h|help    Display this message -p|package  The output package name -j|jar file  The jar fileEOT}  # ---------- end of function usage ----------#-----------------------------------------------------------------------# Handle command line arguments#-----------------------------------------------------------------------while getopts ":hp:j:" optdo case $opt in  h|help  ) usage; exit 0  ;;  p|package ) package_name=$OPTARG ;;  j|jar   ) jar_file=$OPTARG ;;  \?    ) echo -e "\n Option does not exist : $OPTARG\n"     usage; exit 1  ;; esac  # --- end of case ---doneshift $(($OPTIND-1))if [[ -z $package_name ]]; then  echo "package_name can't not be empty"  usage  exitfiif [[ -z $jar_file ]]; then  echo "jar_file can't not be empty"  usage  exitfigenerate_wrapper_script(){  local wrapper_script=$1  cat <<-'EOT' >$wrapper_script#!/bin/shjava -jar $0 "$@"if [ $? -ne 0 ]; then  echo "run jar file failed."  exit 1fiexit 0#__SCRIPTEND__EOT}wrapfile=wrap_$$.shecho -e "start packing ..\n"generate_wrapper_script $wrapfilecat $wrapfile $jar_file > $package_namechmod +x $package_nameecho -e "\noutput: $package_name\n"rm -f $wrapfile

保存到 jar_wrapper.sh,使用方法举例:

  ./jar_wrapper.sh -p /tmp/aaa -j /tmp/test_demo1.jar

然后,chmod +x /tmp/aaa && /tmp/aaa 就能够跑起程序来了~!