Java Swing выполняет код gFortran - PullRequest
1 голос
/ 19 июня 2011

Мне было интересно, есть ли код Java / Swing для выполнения программы gFortran на платформе ubuntu / linux?

Кто-нибудь имеет представление о том, как это можно сделать?

1 Ответ

3 голосов
/ 19 июня 2011

Одна вещь, которую вы могли бы сделать, это запустить отдельную программу, используя Runtime , чтобы запустить Процесс , состоящий из вашего кода Fortran.Ниже приведен пример этого:

Runtime rt = Runtime.getRuntime();

try {
  String[] env = {"/path/to/program"};
  Process proc = rt.exec("your_program", env);
  System.out.println("return value: " + proc.waitFor());
}
catch (Exception ex) {
  System.err.println(ex);
}

Приведенный выше код выполнит / path / to / program / your_program, дождется его завершения и затем прочитает код возврата.

В качестве альтернативы, вы можете записать некоторую информацию в stdout и прочитать ее из вашей java-программы:

import java.io.*;
...
Runtime rt = Runtime.getRuntime();

try {
  String[] env = {"/path/to/program"}; 
  Process proc = rt.exec("your_program", env);
  System.out.println("return value: " + proc.waitFor());

  InputStream stream = proc.getInputStream();
  BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
  while (reader.ready()) {
    // Do something with the data here.
    System.out.println(reader.readLine());
  }
}
catch (Exception ex) {
  System.err.println(ex);
}    

Если вам нужно предоставить внешней программе аргументы, вы передаете их в виде массива строк.,Например, если я хотел запустить ls -lh /etc/, то, что делает следующий код:

  String[] cmd = {"ls", "-lh", "/etc/"};
  String[] env = {"/bin/"};
  Process proc = rt.exec(cmd, env);

Вы также можете попробовать использовать собственный интерфейс Java для взаимодействия с кодом C / C ++который может взаимодействовать с Fortran.

...