【问题标题】:Running a shell script from Java returning "command not found"从 Java 运行 shell 脚本返回“找不到命令”
【发布时间】: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 中启动相同的命令与直接在命令行上启动相同的命令时出现了不同的行为。

【问题讨论】:

    标签: java shell unix netbeans


    【解决方案1】:

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

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

    【讨论】:

    • 可以从脚本中获取我的 .bash_profile 吗?
    猜你喜欢
    • 1970-01-01
    • 2013-03-18
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 2023-02-18
    • 1970-01-01
    • 2013-11-03
    相关资源
    最近更新 更多