本文僅針對純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:\CloudFiles\project\TestJar\testlib\src\META-INF\MANIFEST.MF)
打包並執行
1、選擇build -> Build Artifacts -> 彈窗內選擇build 即開始打jar包,jar包輸出路徑為 \out\artifacts\moduleName\
2、運行jar包時會通過指定的java類執行,執行命令如下:
java -jar E:\test.jar
Android 執行
在Android平台執行Java程序需要依賴dalvik虛擬機,因此需要將jar包轉換為對應的字節碼文件,操作步驟如下:
1、生成java jar包 同Pc執行
3、java jar包轉dex包,執行如下命令
dx --dex --output=test.dex E:\test.jar
4、連接Android手機,並將dex執行程序推入Android設備路徑下:
adb push E:\test.dex /data/local/tmp/
5、通過dalvik命令執行dex程序,程序通過指定的入口Java類的main方法開始執行
//dalvikvm 命令啟動jar包在Android4.4版本下解析dex時失敗
dalvikvm -cp /data/local/tmp/test.dex com.qihoo.trace.TestMain