首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows下JNI和C语言入门

Windows下JNI和C语言入门
EN

Stack Overflow用户
提问于 2012-06-22 17:56:54
回答 4查看 9K关注 0票数 4

我是Java学习的新手,第一次想开始学习JNI。我正在使用Cygwin,我已经创建了一个扩展名为.java (Helloworld.java)的文件,如下所示:

代码语言:javascript
复制
class HelloWorld {
     private native void print();
     public static void main(String[] args) {
         new HelloWorld().print();
     }
     static {
         System.loadLibrary("HelloWorld");
     }
 }

然后我通过命令行(javac Helloworld.java)编译该文件,然后通过命令javah –jni Helloworld创建一个本地头文件,然后也通过创建一个C文件来实现,如下所示:

代码语言:javascript
复制
#include <jni.h>
 #include <stdio.h>
 #include "HelloWorld.h"

 JNIEXPORT void JNICALL 
 Java_HelloWorld_print(JNIEnv *env, jobject obj)
 {
     printf("Hello World!\n");
     return;
 }

之后,当我运行该命令时

代码语言:javascript
复制
 Gcc –wall –g Helloworld.c –o hello 

在Cygwin的命令提示行中提供消息

代码语言:javascript
复制
 helloworld.c:1:17: fatal error: jni.h: No such file or directory
 compilation terminated.

如何运行,设置执行文件的路径的过程是什么?请帮助我任何人。谢谢。

EN

回答 4

Stack Overflow用户

发布于 2012-06-22 18:44:52

我猜您还没有将jni目录添加到包含目录列表中,有关详细信息,请查看http://social.msdn.microsoft.com/forums/is/vclanguage/thread/cd7f2d1d-f750-494c-a3b2-7d4186cfe51c

票数 1
EN

Stack Overflow用户

发布于 2012-06-22 18:44:59

假设您已经安装了JDK,那么您需要将JNI的includes目录告知gcc:

代码语言:javascript
复制
-I$JAVA_HOME/../include

其中,应将$JAVA_HOME设置为bin目录的父目录(例如,我机器上的/usr/lib/jvm/java-6-openjdk-amd64/jre)。如果没有设置,那么只要找到jni.h头所在的文件夹就更简单了。

我同意从JNI开始学习Java是一项艰巨的任务,但我尊重您的决定。如果你喜欢时尚书籍,我会推荐Core Java Volume ICore Java Volume II。特别是在后者的末尾,您可以找到关于本机方法的非常详尽的介绍。

票数 1
EN

Stack Overflow用户

发布于 2013-08-10 05:41:47

我在Windows上用的是MinGW。在将“;C:\MinGW\”添加到Path环境变量后,我可以使用以下命令从Windows命令提示符运行gcc.exe。

jni.h文件位于java home include文件夹中。您可以使用JAVA_HOME环境变量或显式指定。

代码语言:javascript
复制
 gcc -c -I"C:\Program Files\Java\jdk1.6.0_26\include" -I"C:\Program Files\Java\jdk1.6.0_26\include\win32" "S:\Accessibility\tools\src\test\java\com\accessibility\HelloWorld.c"

这将创建一个HelloWorld.o文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11154020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档