我正在尝试从资源执行sh文件。执行文件位于资源的根目录下:资源库/主/资源/hiveCommand.sh
import sys.process._ "./hiveCommand.sh" !!
但收到IOException:不是这样的文件或目录我做错了什么?
q9yhzks01#
Scala的Process integration不知道如何处理shell脚本。它只能启动程序。要运行shell脚本,您需要启动一个shell(例如bash),并将要运行的文件作为参数提供给它。但是有一个复杂的问题,因为脚本是一个资源(在编译时位于src/main/resources/hiveCommand.sh),在运行时它位于一个jar中。所以简而言之:
bash
src/main/resources/hiveCommand.sh
getClass.getResourceAsStream("/hiveCommand.sh")
"bash /tmp/hiveCommand.sh".!!
1条答案
按热度按时间q9yhzks01#
Scala的Process integration不知道如何处理shell脚本。它只能启动程序。要运行shell脚本,您需要启动一个shell(例如
bash
),并将要运行的文件作为参数提供给它。但是有一个复杂的问题,因为脚本是一个资源(在编译时位于
src/main/resources/hiveCommand.sh
),在运行时它位于一个jar中。所以简而言之:
getClass.getResourceAsStream("/hiveCommand.sh")
读取资源)并将其存储在磁盘上。