本文仅针对纯java工程执行进行诠释,通常在PC平台做为jar包形式存在,在Android平台则以dex包形式存在。java
Java属于高级程序语言,Java程序须要运行在特定的虚拟机中,虚拟机将Java字节码转换成对应的机器指令进行执行。不一样平台具备不一样的虚拟机对应各自的机器指令。PC端通常使用JVM虚拟机,Android端使用dalvik虚拟机。android
JVM:Pc平台java虚拟机,为java应用执行提供执行环境。
dalvik:Android平台Java虚拟机,为java应用提供运行环境,区别于jvm字节码。jvm
一、建立Java工程
二、idea选择 file->project structure -> Artifacts() -->点击+ 后选择JAR -> from module with dependencies
三、配置编译的module、指定入口类(必须覆写main方法)
四、修改Directory for META-INF/MAINFEST.MF:去除其中的main (例如:E:\CloudFiles\project\TestJar\testlib\src\META-INF\MANIFEST.MF)ide
一、选择build -> Build Artifacts -> 弹窗内选择build 即开始打jar包,jar包输出路径为 \out\artifacts\moduleName
二、运行jar包时会经过指定的java类执行,执行命令以下:工具
java -jar E:\test.jar
在Android平台执行Java程序须要依赖dalvik虚拟机,所以须要将jar包转换为对应的字节码文件,操做步骤以下:
一、生成java jar包 同Pc执行
三、java jar包转dex包,执行以下命令开发工具
dx --dex --output=test.dex E:\test.jar
四、链接Android手机,并将dex执行程序推入Android设备路径下:ui
adb push E:\test.dex /data/local/tmp/
五、经过dalvik命令执行dex程序,程序经过指定的入口Java类的main方法开始执行idea
//dalvikvm 命令启动jar包在Android4.4版本下解析dex时失败 dalvikvm -cp /data/local/tmp/test.dex com.qihoo.trace.TestMain