ubuntu/linuxプラットフォーム上でgFortranプログラムを実行するためのJava/Swingコードはありますか?gFortranコードを実行するJava Swing
これはどのように行うことができますか?
ubuntu/linuxプラットフォーム上でgFortranプログラムを実行するためのJava/Swingコードはありますか?gFortranコードを実行するJava Swing
これはどのように行うことができますか?
あなたができることの1つは、Runtimeを使用して別のプログラムを実行して、あなたのfortranコードからなるProcessを開始することです。以下はその一例である:
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);
}
上記のコードは、/パス/に/プログラム/ 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);
あなたはまた、FORTRANとインターフェースすることができるC/C++コードとの通信にJava Native Interfaceを使用して試みることができます。
JNIを使用する場合は、[iso_c_binding](http://gcc.gnu.org/onlinedocs/gcc-4.6.0/gfortran/Interoperable-Subroutines-and-Functions.html)を必ず使用してください。さもなければ、あなたはfortran名前のmanglingを勉強しなければなりません。 – SiggyF
私は本当にどこから始めるべきかわからない! – Melvin
@ user793260:あなたのJavaプログラムから外部プログラムを実行するのが最も簡単です。あなたはfortranプログラムからの回答が必要ですか? 1つの方法は、結果をプログラムの戻りコードに組み込むことです(終了時)。結果をファイルに書き込むか、JavaプログラムとFortranプログラムの間にソケット接続を確立します。 –
はい、可能です。投稿を修正してJSwingをSwingに変更してください。http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.htmlとhttp:// downloadを読んでください.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html – mKorbel
スイングは本当にあなたの問題とは関係ありません。バックグラウンドスレッドでgFortranを呼び出すために気をつける必要はありません。 –
2つの方法があります。 1. JavaはgFortranコードを実行しますか? 2. JaveはgFortranコードを実行するCコードを実行しますか? – Melvin