易截截图软件、单文件、免安装、纯绿色、仅160KB

JNA实现Java调用Fortran

在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_,知道了这一点,后面就简单了。
1、创建一个动态链接库项目FortranDLL,新建一个简单的fortran源程序for1.f:
      subroutine sub1(i)
          INTEGER i;
          PRINT*, "SUB1 CALLED"
          PRINT*, i
      END subroutine
编译代码生成libFortranDLL.dll。
2、新建一个Java项目,包含JNA库
创建一个动态库接口代码FLib.java:
import com.sun.jna.Library;
import com.sun.jna.ptr.ByReference;
public interface FLib extends Library {
    void sub1_(ByReference  i);
}
创建一个主程序Main.java
import com.sun.jna.Native;
import com.sun.jna.ptr.IntByReference;
public class Main {
    public static void main(String[] args) {
        // Loading dynamically the library
        FLib lib2 = (FLib) Native.loadLibrary("libFortranDLL", FLib.class);
        IntByReference a = new IntByReference(1234);
        lib2.sub1_(a);
    }
}
注意,关键在于接口当中的sub_这个命名规则,否则无法找到找到指定过程,另外默认情况下,fortran使用引用参数,所以不能简单实用int作为参数,必须实用引用参数。
运行程序,得到如下结果:
run:
 SUB1 CALLED
 1234
成功生成(总时间:1 秒)
3、G95的调用更简单一些,可以直接使用bind指定输


相关文档:

JAVA 共享锁和条件变量一二

多线程之间需要协调工作。例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程downloadThread将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务后,再通知displayThread“图片准备完毕,可以显示了”,这时,displayThread继续执 ......

Java and XML_读书笔记_2010 05 16

2010-05-16
三、解析XML文档
l  Xerces解析器、SAX类和接口
l  SAX阅读器
n  首先要得到一个符合SAX org.xml.sax.XMLReader接口规范的例子,这个接口定义了解析行为并允许设置某些特征和属性。该接口替换了SAX1.0中的org.xml.sax.Parser
import org.apache.xerces.parsers.SAXParser;
import org.xml. ......

ECLIPSE 调试java 源码

引用
1.点 “window”-> "Preferences" -> "Java" -> "Installed JRES"
2.此时"Installed JRES"右边是列表窗格,列出了系统中的 JRE 环境,选择你的JRE,然后点边上的 "Edit...", 会出现一个窗口(Edit JRE)
3.选中rt.jar文件的这一项:“c:\program files\java\jre_1.5.0_06\lib\rt.jar” ......

java定时执行代码

原文发表在http://baihuazhou.javaeye.com/blog/200642
我们在项目中,经常会碰到这样一种需求,就是让某个程序在某个固定的时间去运行,比如定时备份操作。在Java的J2SE的API中可以很容易做到这一点。
让我们需要定时执行的类继承自java.util.TimerTask中的TimerTask类,把需要执行的方法放入run方法中:
import java. ......

彩五连珠游戏开发过程(java语言)

彩五连珠游戏开发过程
彩五连珠,一开始叫“五彩连珠”,同学抗议说不会玩,因为她理解成了要把五种不同颜色的球连成一线才能赢,考虑到这个标题的确引人误解,游戏又没有任何说明,最终把名称改成了“彩五连珠”。这是一个很经典的小游戏,很多手机里都有,最近因为学习java,作为练习,把这个游戏做 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号