java - 运行 .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.scpt
prompt.csv
runScript.sh
MatrixPath2.0.jar
编辑:
path_to_file
是该项目文件夹的完整路径,即Users/my_name/Documents/Work/Project/prompt.csv
解决方案
该错误Caused by: java.lang.ClassNotFoundException: outputFocalAnalysis.FocalInfoEdge"
表明该 jar 未在类路径中正确设置。请尝试在您的 shell 脚本中执行以下操作
java -cp path_to_file/MatrixPath2.0.jar outputFocalAnalysis/FocalInfoVertex
推荐阅读
- vue.js - 能够显示承诺的结果,但结果的长度显示为未定义
- mingw-w64 - 安装 MinGW-W64
- xml - 自定义日期的 XSLT-2.0 转换
- c++ - 如何在 CPP 中删除动态非矩形二维数组
- python - 无法在 Python 多处理中从子进程返回 manager.list 来自 array.tolist()
- javascript - 如何内联显示网格线项目?
- java - Groovy jenkins 脚本 println 不起作用
- mongodb - 未处理的承诺拒绝警告——MERN
- python - TensorFlow 2.1.0:_FallbackException:此函数不处理所有输入都不是 EagerTensors 的路径的情况
- mongodb - 如何在 mongodb 中获取文档字段的大小(以字节为单位)