回答
你可以做的一件事是運行一個單獨的程序,使用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並等待其完成,然後讀出的返回碼。如果您需要與參數提供外部程序你將它們作爲一個字符串數組
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);
}
:
或者,你可以寫一些信息標準輸出和閱讀,從您的Java程序。舉個例子,如果我想跑ls -lh /etc/
是下面的代碼做什麼:
String[] cmd = {"ls", "-lh", "/etc/"};
String[] env = {"/bin/"};
Process proc = rt.exec(cmd, env);
你也可以使用Java Native Interface具有可與Fortran接口的C/C++代碼進行溝通嘗試。
如果您想使用JNI,請確保使用[iso_c_binding](http://gcc.gnu.org/onlinedocs/gcc-4.6.0/gfortran/Interoperable-Subroutines-and-Functions.html)。否則,你必須學習fortran名稱的修改。 – SiggyF
我真的不知道從哪裏開始! – Melvin
@ user793260:最簡單的做法是從你的java程序運行一個外部程序。你需要fortran程序的迴應嗎?一種方法是將結果合併到程序的返回代碼中(當它終止時),另一種方法是將一些結果寫入文件或者可以在java程序和fortran程序之間建立套接字連接。 –
- 1. Java代碼執行
- 2. Java swing的代碼重構
- 3. Java Swing GUI代碼結構
- 4. Java代碼不執行
- 5. 停止代碼執行Java
- 6. Java停止代碼執行?
- 7. 使用Java執行Java 5代碼6
- 8. 執行的Java代碼peice的開始
- 9. 在Java中並行執行代碼
- 10. 執行從Java代碼的Maven插件
- 11. 的Java執行命令不代碼
- 12. Java - 執行日誌代碼的錯誤
- 13. java代碼執行中的多個main()
- 14. 當我通過java swing代碼執行一個螞蟻時沒有輸出
- 15. 代碼(java,多線程)在一行代碼後停止執行
- 16. 執行的代碼
- 17. 執行代碼
- 18. 代碼執行
- 19. Java swing - 點擊執行一個動作
- 20. Java Swing - 更改可執行jar圖標
- 21. java中執行catch代碼塊後的代碼
- 22. 從Java代碼執行Shell腳本
- 23. 代碼編譯但未執行Java
- 24. Java代碼沒有按預期執行
- 25. 無法阻止執行Java代碼
- 26. 後代碼先在java/android中執行
- 27. 通過java代碼執行eclipse插件
- 28. Java代碼來執行sh文件
- 29. 執行Java代碼時出現「java.lang.ClassNotFoundException」
- 30. Java代碼得不到執行
是的,這是可能的,請修改您的文章,並將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
Swing確實與您的問題無關,我認爲除了需要注意在後臺線程上進行gFortran調用外。 –
這意味着,有兩種方法可以做到這一點 1. Java執行gFortran代碼? 2. Jave執行執行gFortran代碼的C代碼嗎? – Melvin