首页 > 解决方案 > 运行 .jar 的 Shell 脚本可从终端运行,但不能从 AppleScript

问题描述

我正在使用 shell 脚本来运行 .jar 文件和输入参数。当我 cd 进入包含相关文件的文件夹并调用以下行时,一切正常。

cat 'prompt.csv' | sh runScript.sh 'WVFO'

我想从 AppleScript 运行它,当我使用以下代码时,出现错误

do shell script "cat 'path_to_file/prompt.csv' | sh path_to_file/runScript.sh 'WVFO'"

这是引发的错误:

error "Error: Could not find or load main class outputFocalAnalysis.FocalInfoEdge
Caused by: java.lang.ClassNotFoundException: outputFocalAnalysis.FocalInfoEdge" number 1

最后,这是我的 sh 代码:

echo "First arg: $1"
if [ $1 = "WSO" ]; then
    echo "WSO found"
    java -cp MatrixPath2.0.jar outputFocalAnalysis/FocalInfoVertex
elif [ $1 = "WVFO" ]; then
    echo "Must be WVFO"
    java -cp MatrixPath2.0.jar outputFocalAnalysis/FocalInfoEdge
else    
    echo "Argument 1 Invalid"
fi

文件夹结构如下: 是包含(AppleScript)、、和Project的主文件夹。run.scptprompt.csvrunScript.shMatrixPath2.0.jar


编辑:

path_to_file是该项目文件夹的完整路径,即Users/my_name/Documents/Work/Project/prompt.csv

标签: javashelljarapplescript

解决方案


该错误Caused by: java.lang.ClassNotFoundException: outputFocalAnalysis.FocalInfoEdge"表明该 jar 未在类路径中正确设置。请尝试在您的 shell 脚本中执行以下操作

java -cp path_to_file/MatrixPath2.0.jar outputFocalAnalysis/FocalInfoVertex

推荐阅读