【发布时间】:2016-11-16 17:30:19
【问题描述】:
我使用 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| mail -s $Project_title" done" myEmailAddress@gmail.com
我知道脚本已启动,因为我收到一封包含以下错误的电子邮件:
“...第 14 行:python2:找不到命令”
和
“...第 16 行:Rscript:找不到命令”
当我在终端中使用完全相同的参数运行 Master_run.sh 时,不会出现此类错误。有人知道可能出了什么问题和/或如何解决吗?
为了重新表述这个问题,似乎我在从 java 中启动相同的命令与直接在命令行上启动相同的命令时出现了不同的行为。
【问题讨论】: