簡體   English   中英

從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命令提示符。 這種情況下,我會得到以下信息: 圖像2

為什么它不起作用。 請幫我。 我如何從我的java程序中正確讀取該exe 任何幫助將不勝感激!!

似乎您需要在此處重定向流-因此fortran執行過程的輸入流將被重定向到System.in ,輸出流將重定向到System.out 只需輸入以下幾行:

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

pb.start()之前。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM