1

我想知道 Java / Swing 代码是否可以在 ubuntu/linux 平台上执行 gFortran 程序?

任何人都知道如何做到这一点?

4

1 回答 1

3

您可以做的一件事是使用运行时运行一个单独的程序来启动一个由您的 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 并等待它完成然后读取返回码。

或者,您可以将一些信息写入标准输出并从您的 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 回答