首页 > 解决方案 > csc -version 正在终端中运行,但不是从我的 java 程序 MAC 中运行

问题描述

package test_cmd_command;

import java.io.BufferedReader;
import java.io.IOException; 
import java.io.InputStreamReader;
import java.time.LocalDateTime;


public class CommandLine {

public static String executeCommand(String cliCommand) {
    String s = null;
    BufferedReader stdInput = null;
    BufferedReader stdError = null;
    String error = "";
    String output = "";
    try {
        ProcessBuilder pb1 = new ProcessBuilder(
                "bash",
                "-c",
                cliCommand);

        pb1.redirectErrorStream(true);
        Process p = pb1.start();

        stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
        stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));

        while ((s = stdInput.readLine()) != null) {
            output += "\n" + s;
        }
        //System.out.println("Here is the standard error of the command (if any):\n");
        while ((s = stdError.readLine()) != null) {
            //System.out.println(">> "+s.toString());
            error += "\n" + s;
        }

    } catch (IOException e) {
        System.out.println("exception happened - here's what I know: \n" + e.getMessage());
    } finally {
        try {
            stdInput.close();
            stdError.close();
        } catch (IOException e) {

        }
    }
    String returnValue = null;
    if (output != null && error != null) {
        returnValue = output + "\n" + ":  " + error;
    } else if (output != null) {
        returnValue = output;
    }
    return returnValue;
}
}

“csc -version”在终端中运行,但不是来自我在 MAC 上的 java 程序。它给出输出"bash Command Not Found"。有什么办法可以解决这个问题......这个程序正确运行其他命令,如javac -version等。我在MAC 上运行这个程序,而不是在 windows 上

标签: javalinuxmacosjavafx

解决方案


这对我有用

export PATH=/Library/Frameworks/Mono.framework/Versions/Versions/bin/:${PATH}

我运行这样的命令“export PATH=/Library/Frameworks/Mono.framework/Versions/Versions/bin/:${PATH}; csc -version”,它可以工作并返回 csc 的版本。


推荐阅读