从 java 调用 fortran90 exe 程序未执行

Calling fortran90 exe program from java is not executing

我正在尝试从 java 程序调用 Fortran 90 程序, 我的 Fortran 程序如下:

 !sum.for
program Numbers_sum

  implicit none
  ! -----------------------------------------------Declare

  REAL :: a,b,sum


  ! -----------------------------------------------Input
  print*,"Enter first number..."
  read*, a
  print*,"Enter second number ..."
  read*, b
  ! -----------------------------------------------Compute
  sum = a+b
  ! -----------------------------------------------Output
  print*,"Sum =", sum
  end

正在使用 Fortran 编译器。最后我得到了一个 exe 文件,它将执行并给出 fortran 结果。我试图从我的 java 程序中调用它, 我的java程序如下:

import java.io.File;
import java.io.InputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Sum {
    public static void main(String []args) {
        String filePath = "sum.exe";
    if (new File(filePath).exists()) {
    try {

        ProcessBuilder pb = new ProcessBuilder(filePath);
        pb.redirectError();
        Process p = pb.start();
        InputStream is = p.getInputStream();
        int value = -1;
        while ((value = is.read()) != -1) {
            System.out.print((char) value);
        }

        int exitCode = p.waitFor();

        System.out.println(filePath + " exited with " + exitCode);
    } catch (Exception e) {
        e.printStackTrace();
    }
} else {
    System.err.println(filePath + " does not exist");
}
    }
    }

但它不起作用。

我在命令提示符下调用 java,如下所示:

但光标只闪烁。它不起作用。

cntrl+c 是为了逃离 java 命令提示符。那种情况我得到如下:

为什么它不起作用。请帮我。我如何从我的 java 程序中正确读取 exe。任何帮助将不胜感激!!

似乎您需要在此处重定向流——因此 fortran 执行过程的输入流将被重定向到 System.in,输出流将被重定向到 System.out。只需输入以下几行:

pb.redirectInput(Redirect.INHERIT); 
pb.redirectOutput(Redirect.INHERIT); 

pb.start().

之前