2023-01-20 347
我是Java学习的新手,第一次想开始JNI.我正在与Cygwin合作,我已经使用.java(Helloworld.java)扩展名创建了一个文件,如下所示:
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文件为:
来实现
#include <jni.h>
#include <stdio.h>
#include "HelloWorld.h"
JNIEXPORT void JNICALL
Java_HelloWorld_print(JNIEnv *env, jobject obj)
{
printf("Hello World!\n");
return;
}
之后,我运行命令
Gcc –wall –g Helloworld.c –o hello
在cygwin中提供命令提示符中的消息
helloworld.c:1:17: fatal error: jni.h: No such file or directory
compilation terminated.
如何运行以及设置执行文件的路径的过程是什么?请帮助我任何人.谢谢.
我想您还没有将JNI目录添加到Incluph Directory列表中,请检查 http://social.msdn.microsoft.com/forums/is/vclanguage/thread/thread/cd7f27f2d1d-f750-f750-f-f750-494c-494c-a3b2-7d41d41186cfee
假设您安装了JDK,则需要通知GCC JNI的包含目录:
-I$JAVA_HOME/../include
其中应将$JAVA_HOME设置为Java bin目录的父目录(例如,我的计算机上的/usr/lib/jvm/java-6-openjdk-amd64/jre).如果未设置,那么,如果您只找到jni.h标头居住的文件夹,则更简单.
我同意,从JNI开始学习Java是一项艰巨的任务,但我尊重您的决定.如果您时尚书籍,我建议您建议 core java卷a> and core java卷II .尤其是在后者的末尾,您可以找到对本机方法的详尽范围.
我在Windows上使用了mingw.将”; c:\ mingw \ bin \ \ \”添加到路径环境变量之后,我能够使用下面的命令从Windows命令提示符运行gcc.exe.
JNI.H文件位于Java Home中,包括文件夹.您可以使用Java_home环境变量或明确指定.
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文件.
以上所述是小编给大家介绍的在Windows下开始使用JNI和C,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/26094.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态