Одна вещь, которую вы могли бы сделать, это запустить отдельную программу, используя 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.