- 1、jdk是什么东西啊,可以干什么吗?
- 2、linux中怎么使用javah命令生成jni头文件
- 3、javah是什么意思
- 4、菜鸟问题: jdk, jar, javaw, javac, javah分别是什么??
- 5、jni中用javah生成的头文件有什么作用
jdk安装好配置环境变量后,系统就承认了 java,javac等命令,当编译好java文件,就可以在开始——运行——cmd的dos系统下运用指定命令运行java文件。
JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。
JDK包含的基本组件包括:
javac – 编译器,将源程序转成字节码
jar – 打包工具,将相关的类文件打包成一个文件
javadoc – 文档生成器,从源码注释中提取文档
jdb – debugger,查错工具
java – 运行编译后的java程序(.class后缀的)
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。 Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。 Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。 Jconsole: Java进行系统调试和监控的工具
总之,jdk并不是一个应运软件,并不能从哪里运行。编译时在任何可输入文本的软件中均可(通常用.txt记事本编译),编译好后改名.java文件,在dos系统中用 javac命令编译连接 java命令 .运行。
java程序
rk3288/frameworks/base/media/java/android/media/MediaScanner.java
文件中class 为public class MediaScanner
正常编译后会在rk3288/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes/android/media目录下生成MediaScanner.class文件。
我们进入rk3288/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes目录,使用如下命令生成jni头文件:
classes]$ javah -classpath . -jni android.media.MediaScanner
classes]$ ls android_media_MediaScanner.h
android_media_MediaScanner.h
Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
jdk 是java 开发工具包。 简单来说 ,是开发java 的一个必备工具。
jar 是 java 开发完成之后,打包的结果 类似 程序的 .dll 或者 .exe
javaw 是java 运行环境中的 一个工具, 用于启动 java 或者 jar 程序。 其作用是隐藏控制台的方式, 运行java 程序。
javac 是java 开发工具包(jdk) 其中的一个工具, 用于编译 java 文件, 产生可运行的 .class java 字节码文件。\
javah 是java语言 C 头文件和 stub 文件生成器。 主要用于 java做本地调用的时候。 产生C语言的头文件。
javaw 多数是用于运行 Swing 。 或者不需要控制台的可视化程序。 比如。运行 jar 文件。
javaw -jar jar文件名称
如果运行java 文件。 只要编译好产生.class 字节码文件
然后
javaw .class文件名
调用方式,和java 命令是一样的。 区别只是不产生控制台。
Java中本地方法(native 修饰)可通过javah来生成头文件,你可以在这个头文件里实现java中定义的方法,然后你需要将生成的头文件编译,如DOS下编译得到动态连接库存XXX.dll,你在使用JAVA定义的那个本地方法时 需要加载这个dll库 然后你就可以像调其它JAVA一样调你定义的那个类的本地方法。对于已经编译过的头文件,你删除了也不会有什么影响的,只要你的dll文件还在就行!
纯手工,望采纳!