欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javac javah 生成JNI 错误 找不到class

程序员文章站 2022-05-23 10:11:46
...

翻开JAVA 核心技术 卷2 高级特性,才发现JNI原来是java原本就有的特性,之前一直以为是Google针对Android研发的,人丑果然还是要多读点书啊,这一套书买了两年多,今天才翻到这个,为什么会翻到这个,因为要发现写android app代码太吃力了,很多不懂,深思一下,走都没学会,就开始跑了,那么为什么要跑呢,都是老板逼的,难道你只能做一个驱动工程师么!!!

之前看android书上说可以使用javac javah 自动生成jni头文件,试验了很多次都没成功,今天照着这本java核心技术卷二 第12章 本地方法,还好成功了,一点小曲折,记录下

使用UltraEdit 新建文件
输入以下内容:

class HelloNative
{
    public static native void greeting();
}

保存, 想着androidstudio中推荐使用UTF-8 就保存文件格式为utf-8
HelloNative.java

在终端中
javac HelloNative.java
出错了 奇怪了
javac javah 生成JNI 错误 找不到class

注意那两个乱码字符,搞了这么多软件开发,特别是一个笑话
怎么生成随机数–让一个新手退出vi
虽然我一般喜欢使用vim,但这不重要,结论都是一样的,vim经常可以看见文件开始有一些乱码,文件保存的格式不对,

于是将文件HelloNative.java 另存为 默认文件格式,还是一样 想起之前eclipse中开发文件编码一般是ASCII,保存之, 终端输入 javac HelloNative.java ,欧拉,看目录果然生成了HelloNative.h

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloNative */

#ifndef _Included_HelloNative
#define _Included_HelloNative
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     HelloNative
 * Method:    greeting
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_HelloNative_greeting
  (JNIEnv *, jclass);

#ifdef __cplusplus
}
#endif
#endif

javac javah 生成JNI 错误 找不到class

java 为什么不默认UTF-8 呢,统一编码果然是个世界难题!!!
我的愿望是,世界和平!!!