回答
你可以做的一件事是运行一个单独的程序,使用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