Android系统执行Java jar程序 -- dalvik运行dex Java工程
Posted 聆风牧雨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android系统执行Java jar程序 -- dalvik运行dex Java工程相关的知识,希望对你有一定的参考价值。
本文仅针对纯java工程执行进行诠释,一般在PC平台作为jar包形式存在,在android平台则以dex包形式存在。
Java属于高级程序语言,Java程序需要运行在特定的虚拟机中,虚拟机将Java字节码转换成对应的机器指令进行执行。不同平台具有不同的虚拟机对应各自的机器指令。PC端一般使用JVM虚拟机,Android端使用dalvik虚拟机。
需要配置环境:
- Java JDK开发环境
- idea开发工具
- Android SDK开发环境
- Android build-tools 环境变量(随意指定一个版本即可)
JVM于dalvik
JVM:Pc平台java虚拟机,为java应用执行提供执行环境。
dalvik:Android平台Java虚拟机,为java应用提供运行环境,区别于jvm字节码。
Java程序执行
PC执行
idea配置可执行jar包
1、创建Java工程
2、idea选择 file->project structure -> Artifacts() -->点击+ 后选择JAR -> from module with dependencies
3、配置编译的module、指定入口类(必须覆写main方法)
4、修改Directory for META-INF/MAINFEST.MF:去除其中的main (例如:E:CloudFilesprojectTestJar estlibsrcMETA-INFMANIFEST.MF)
打包并执行
1、选择build -> Build Artifacts -> 弹窗内选择build 即开始打jar包,jar包输出路径为 outartifactsmoduleName
2、运行jar包时会通过指定的java类执行,执行命令如下:
java -jar E: est.jar
Android 执行
在Android平台执行Java程序需要依赖dalvik虚拟机,因此需要将jar包转换为对应的字节码文件,操作步骤如下:
1、生成java jar包 同Pc执行
3、java jar包转dex包,执行如下命令
dx --dex --output=test.dex E: est.jar
4、连接Android手机,并将dex执行程序推入Android设备路径下:
adb push E: est.dex /data/local/tmp/
5、通过dalvik命令执行dex程序,程序通过指定的入口Java类的main方法开始执行
dalvikvm -cp /data/local/tmp/test.dex com.qihoo.trace.TestMain
以上是关于Android系统执行Java jar程序 -- dalvik运行dex Java工程的主要内容,如果未能解决你的问题,请参考以下文章
错误记录记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
开发环境Android 命令行中执行 Java 程序 ( IntelliJ IDEA 中创建 Java / Kotlin 工程 | dx 打包 DEX 字节码文件 | dalvikvm 命令 )(代码