1

ubuntu/linuxプラットフォームでgFortranプログラムを実行するためのJava/Swingコードがとにかくあるのではないかと思っていましたか?

誰でもこれを行う方法について考えがありますか?

4

1 に答える 1

3

実行できることの 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++ コードと通信することもできます。

于 2011-06-18T21:40:23.993 に答える