小编Sta*_*ski的帖子

通过 JNI 将 Fortran 代码与 Java 集成

我在通过 JNI 将 Fortran 代码与 Java 集成时遇到问题。当我将 C 对象与 Fortran 对象链接时,可能会出现此问题。

文件:HelloWorld.java

public class HelloWorld {
    native void foo();
    static {
        System.loadLibrary("test");
    }
    static public void main(String argv[]) {
        new HelloWorld().foo();
    }
}
Run Code Online (Sandbox Code Playgroud)

文件:ctest.c

#include <jni.h>
#include <stdio.h>

extern void bar_();

JNIEXPORT void JNICALL Java_HelloWorld_foo
  (JNIEnv * env, jobject jobj)
{
    printf("Hello World!\n");
}
Run Code Online (Sandbox Code Playgroud)

汇编:

$ gcc -fPIC -shared -lc \
    -I/usr/lib/jvm/java-7-oracle/include \
    -I/usr/lib/jvm/java-7-oracle/include/linux \
    -o libtest.so ctest.c
$ javac HelloWorld.java
$ java HelloWorld
Hello World!
Run Code Online (Sandbox Code Playgroud)

非常好,Hello World!工作正常。但是当我添加 …

c java java-native-interface fortran gfortran

5
推荐指数
1
解决办法
781
查看次数

标签 统计

c ×1

fortran ×1

gfortran ×1

java ×1

java-native-interface ×1