【发布时间】:2014-05-26 07:21:42
【问题描述】:
大家好,我已经尝试了所有解决方案,例如 java -Djava.library.path=。演示 将dll路径添加到PATH java -Djava.library.path=c:\JNI\demo.dll 演示
但是还是上面的错误。
这是我的java代码..
class demo
{
public native void printline();
public static void main(String[]args)
{
new demo().printline();
}
}
这是我的 c 代码...
#include<stdio.h>
#include<jni.h>
#include "demo.h"
JNIEXPORT void JNICALL Java_demo_printline(JNIEnv *a, jobject b)
{
printf("Hello wrold!!!");
return;
}
编译运行步骤,
- javac demo.java
- javah 演示
- gcc -c -I"c:\jdk1.7.0_55\include" -I"c:\jdk1.7.0_55\include\win32" demo.c
- gcc -Wl,--add-stdcall-alias -shared -o demo.dll demo.c
- java -Djava.library.path=c:\JNI\demo.dll 演示
我是不是哪里出错了?
谁能帮帮我。
【问题讨论】:
-
你确定使用像
printf这样会导致很大的副作用(在标准输出缓冲区上写入)是合法的。你确定JVM不会消除这种行为吗?
标签: java c gcc java-native-interface