【发布时间】:2015-03-17 14:01:58
【问题描述】:
我浏览了整个互联网,现在我一直在生成共享库。 第一个 Java 文件:
import java.io.*;
public class JavaToC {
public native void helloC();
static {
System.loadLibrary("HelloWorld");
}
public static void main(String[] args) {
new JavaToC().helloC();
}}
在编译完上面的java程序后,我还使用了头文件:
javah JavaToC
现在我编写了我的简单 C 程序:(HelloWorld.c)
#include <stdio.h>
#include <stdlib.h>
#include <JavaToC.h>
#include <jni.h>
JNIEXPORT void JNICALL Java_JavaToC_helloC(JNIEnv *env, jobject javaobj)
{
printf("Hello World: From C");
return;
}
现在我想创建一个本地共享库,但在这里我卡住了,我使用了
gcc HelloWorld.C -IC:\Program Files\Java\jdk1.7.0_21\include -IC:\Program Files\Java\jdk1.7.0_21\include\win3 -shared -o HelloWorld.dll
但是将这些命令放入windows后,它返回错误:
gcc: error: Files\Java\jdk1.7.0_21\include: No such file or directory
gcc: error: Files\Java\jdk1.7.0_21\include\win3: No such file or directory
我无法清除它! :((
【问题讨论】:
-
显然您需要转义或引用参数中的空格。如果您不这样做,则空格之后的任何内容都将被视为另一个参数。因此出现错误。
-
您能告诉我先生吗?暗隼
标签: java c dll header java-native-interface