ubuntu/linuxプラットフォームでgFortranプログラムを実行するためのJava/Swingコードがとにかくあるのではないかと思っていましたか?
誰でもこれを行う方法について考えがありますか?
実行できることの 1 つは、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 Native Interfaceを使用して、fortran とインターフェースできる C/C++ コードと通信することもできます。