【问题标题】:Shell Script to Run .jar Works From Terminal but not AppleScript运行 .jar 的 Shell 脚本可从终端运行,但不能从 AppleScript
【发布时间】:2019-07-11 23:07:28
【问题描述】:

我正在使用一个 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

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


编辑:

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

【问题讨论】:

  • 您的 jar 是在当前文件夹中还是在 path_to_file 位置?您需要相应地设置类路径
  • 它在当前文件夹中。当我不使用 shell 脚本和 csv 的完整路径时,我收到 No such file or directory 错误。 path_to_file 位置也是当前文件夹。

标签: java shell jar applescript


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-08-26
    • 2010-12-08
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多