gpt4 book ai didi

java - 从 Java 运行 shell 脚本返回 "command not found"

转载 作者:行者123 更新时间:2023-12-02 03:13:47 28 4
gpt4 key购买 nike

我使用 NetBeans v.8.2 创建了一个 java GUI。对于 Java 来说非常陌生。

GUI 中的一个按钮使用从 GUI 中的其他按钮/文本字段收集的参数启动 shell 脚本(我知道这不是理想的 Java 实践,但它适合我的用例):

    ```
private void RunMacActionPerformed(java.awt.event.ActionEvent evt) {
String command[] = {scriptDirStr + "/./Master_run.sh",
projDirStr+"/",
DestDirStr+"/",
ECnonNormStr,
ECnormStr,
ProjID.getText(),
scriptDirStr +"/"};
System.out.print(Arrays.toString(command));
ProcessBuilder pb = new ProcessBuilder(command);
try {
Process p = pb.start();
} catch (IOException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
```

因此,我们的想法是使用一堆参数启动 Master_run.sh。Master_run.sh 运行其他 R 和 python 脚本,例如:

python2 $script_Path/array_data_extractor.py $spath >>$spath/masterOutput.txt 2>>$spath/masterErrors.txt

Rscript $script_Path/1_APS_generator_master.R $spath $dpath $APS_src_filename $project_ID $APS_norm_src_filename >>$spath/masterOutput.txt 2>>$spath/masterErrors.txt

并以

结尾

cat $spath/masterErrors.txt|邮件 -s $Project_title"完成"myEmailAddress@gmail.com

我知道脚本已启动,因为我收到一封包含以下错误的电子邮件:

“...第 14 行:python2:找不到命令”

“...第 16 行:Rscript:未找到命令”

当我在终端中使用相同的参数运行 Master_run.sh 时,没有出现此类错误。有人知道可能出了什么问题和/或如何解决它吗?

为了重新表述这个问题,我似乎得到了不同的行为,从 java 内部启动相同的命令与直接在命令行上启动相同的命令。

最佳答案

你的shell环境和java的环境明显不同。尝试指定 python2 和 Rscript 的完整路径。例如

/usr/local/bin/python2 $script_Path/array_data_extractor.py ...

关于java - 从 Java 运行 shell 脚本返回 "command not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40638550/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com