Вызов exe-программы fortran90 из Java не выполняется

1

Я пытаюсь вызвать программу Fortran 90 из программы java, Моя программа 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 из командной строки следующим образом: Изображение 174551

Но курсор только мигает. Он не работает.

Я сделал cntrl+c, чтобы выйти из командной строки java. В этом случае мне хотелось бы: Изображение 174551

Почему он не работает. Пожалуйста, помогите мне. Как я мог правильно прочитать это exe из моей программы java. Любая помощь будет оценена!

  • 0
    Ваш exe не Numbers_Sum (или похожий)? Кроме того, зачем вызывать exe из Java?
  • 0
    @Stultuske Мне нужно выполнить программу Fortran из Java. Таким образом, я создал исполняемый файл Fortran и вызывая его из файла Java
Показать ещё 3 комментария
Теги:
fortran
process
exe

1 ответ

1
Лучший ответ

Кажется, что вам нужно переадресовать потоки здесь, поэтому входной поток процесса выполнения fortran будет перенаправлен на System.in и поток вывода на System.out. Просто поставьте следующие строки:

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

до pb.start().

  • 0
    Удивительный приятель, это помогло !!
  • 0
    Пожалуйста )

Ещё вопросы

Сообщество Overcoder
Наверх
Меню