0

我需要为我的 Mac 应用程序创建一个包,我正在使用 PackageMaker

我需要检查 JVM 版本,如果它小于 10.6,那么我将中止安装并要求用户首先安装 JVM,
因为我正在使用以下 shell 脚本

REQUIRED_VERSION=106
#Converting the value in numeric value for comparison in later part of the script REQUIRED_VERSION=`echo $REQUIRED_VERSION | sed -e 's;\.;0;g'`
#Redirecting complete output of java -version to tmp.ver file
java -version >tmp.ver 2>&1
#Getting current version from the tmp.ver file
VERSION=`cat tmp.ver | grep "java version" | awk '{ print substr($3, 2, length($3)-2); }'`
rm tmp.ver
#Coverting into numeric value
VERSION=`echo $VERSION | awk '{ print substr($1, 1, 3); }' | sed -e 's;\.;0;g'`
echo $VERSION
if [ $VERSION ]
    then
        if [ $VERSION -gt $REQUIRED_VERSION ] || [ $VERSION -eq $REQUIRED_VERSION ]
           then
                 echo "requirement matched"
                 exit 1;
           else
                 echo "lower version"
                 exit 0;
        fi
    else
         echo "not able to find java version"
         exit 0;
fi

并且在包装制造商中,我已经通过检查,但在所有情况下,它都达到了失败条件,即书面类型不正确,任何人都可以帮助我,用“什么是正确的返回值形式的 shell 脚本”那个包maker 可以了解其脚本通过或失败。

4

1 回答 1

0

exit 0是您从 InstallationCheck 脚本返回以指示成功的内容。

其他任何内容都表示错误。

颠倒你0的 's 和1's 在你的脚本中,你应该很高兴。

对于您使用的旧版本的 PackageMaker,这个答案应该没问题。更新版本的 PackageMaker 可能支持 InstallationCheck 脚本,但当前 Apple 的 PackageMaker 文档根本没有提到这一点,而是专注于“产品包需求窗格”(参见文档中的图 2-8)。

于 2012-02-24T06:11:33.027 回答