Shell脚本通过双击执行,但不能通过“在控制台中运行”执行

时间:2018-08-06 13:52:28

标签: java shell execution processbuilder konsole

所以我知道这听起来很奇怪,但我不知道为什么。

我有一个打开GUI的Shell脚本。当我右键单击该文件并单击“在控制台中运行”时,这就是我得到的:

run in console

某种程度上,脚本无法继续执行。

但是当我尝试双击shell脚本或通过控制台(./vtdStart.sh)运行它时:

it works

它正常工作。

问题是什么?

我需要通过JAVA运行脚本:

public static void main(String[] args) {
    ProcessBuilder pb = new ProcessBuilder("//home/bfft/VTD/VTD.2.1/bin/vtdStart.sh");

    Thread thread = new Thread(() -> {
        try {
        Process p = pb.start();
        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;


        while ((line = br.readLine()) != null) {
            System.out.println(""+line);
        }

    } catch (IOException ex) {
        Logger.getLogger(JavaApplication2.class.getName()).log(Level.SEVERE, null, ex);
    }
    });

    thread.start();

}

但是您已经猜到了,该程序将不会执行。这与我使用“在控制台中运行”尝试时的“错误”相同。

0 个答案:

没有答案