Java程序編譯和運行的過程



編譯和運行過程可參考:


https://blog.csdn.net/cynhafa/article/details/82425456

 

eclipse 和linux 下啟動java程序詳解

 

一、eclipse 中 run as 》java Application 運行程序

執行的就是 class文件,使用的依賴就是maven Dependencies 下的jar。


run as 》run configurations 里面配置了 main 主函數, classpath 配置了class路徑和依賴的jar路徑,如果是maven 依賴jar路徑 就是 maven Dependencies 里的jar。

如果沒有class文件就會報 加載不到主類。


猜測:run as 》java Application 應該是調用 jdk 的 java.exe 來執行的程序,並且傳遞了run configurations 里面配置的參數。

二、 linux 下 java -jar xxx.jar 啟動jar包


調用ava.exe運行jar文件中的class,
可運行的jar包中都有一個META-INF/MANIFETS.MF文件,其中配置了運行入口類,版本信息、classpath等信息。

 

 

jdk中工具javac.exe ,java.exe,jar.exe 的使用詳解

一、javac.exe編譯java文件
javac test.java


二、java.exe 運行class文件
執行帶main方法的class文件,命令行為:
java <CLASS文件名>
注意:CLASS文件名不要帶文件后綴.class


java test
java com.ee2ee.test.PackageTes

三、java.exe運行jar文件中的class
java -cp test.jar com.ee2ee.test.PackageTest


四、jar.exe 打jar包

jar cvf 生成jar包的完整名稱 要生成的class文件所在目錄以及名稱

例如: jar cvf d:/test.jar e:/review/coreJava/chapter4/Employee.class 表示將目錄e:/review/coreJava/chapter4下面的Emlopyee.class生成jar文件並存放在d盤下面的test.jar里面。


jar.exe是jdk中的自帶的壓縮解壓工具,Eclipse中的Export功能可以導出jar包,或者手動打可運行的jar包,都是用的jar.exe,只是做成了圖形化的界面而已,當然jdk中也提供了壓縮解壓的api,比如:ZipFile、ZipEntry、ZipOutputStream等,我們也可以自己實現一個圖形化的壓縮工具。

應用場景:1.sdk開發中需要導出自己的jar包提供給第三方使用;2.替換各種壓縮文件中文件,比如Android開發過程中多渠道打包,渠道信息是在assets中配置文件讀取的,這時候就要循環替換assets中的配置文件,我們知道apk中放到assets目錄下的文件時沒有經過編程處理的,所以替換其目錄下的文件就可以直接用jar命令來實現,而不用先將apk反編譯,這樣可以節省用時。

基本常識:

1.各種文件xxxx.jar、xxxx.rar、xxxx.war、xxxx.zip、xxxx.apk的本質都是壓縮文件,只是用到的壓縮算法可能不同;

2.java中的jar包是可以直接運行的,可運行的jar包中都有一個META-INF/MANIFETS.MF文件,其中配置了運行入口類,版本信息、classpath等信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM