gpt4 book ai didi

java - 从java调用fortran90 exe程序没有执行

转载 作者:行者123 更新时间:2023-11-30 03:27:48 25 4
gpt4 key购买 nike

我正在尝试从 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,如下所示: image

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

我执行了 cntrl+c 来退出 java 命令提示符。这种情况我得到如下: image2

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

最佳答案

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

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

pb.start()之前。

关于java - 从java调用fortran90 exe程序没有执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29771106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com