Windows應用程序區分庫(DLL)和應用程序(EXE)。 Java是否有相同的區別?Java如何區分庫和應用程序?
回答
的種類。
大多數Java程序存儲在.jar文件中。
如果.jar指定了main
方法,則它可以與啓動程序執行的.exe類似地進行調用。你可以用java -jar program.jar
來做到這一點。
但是,任何.jar文件都可以從另一個文件加載,並且其中的代碼加載,類似於.dll。即使'庫'罐子有一個main
方法,這也可以完成,它不會被自動調用。
這個問題是無稽之談。 Java編譯成由虛擬機解釋的字節碼類文件。
你可以將一堆類文件放入一個zip文件中,並將其命名爲jar,但Java沒有exe或dll的模擬。
其實,它的確如此。所有帶有'public static void main(String [])'的東西都類似於一個exe文件,所有帶有類文件的東西都類似於dll。 – corsiKa 2011-03-03 21:28:32
這與EXE不太相似。操作系統不知道如何自行執行文件/二進制文件,只有JVM知道如何加載JAR並處理main()方法。 – 2011-03-03 21:29:47
@glowcoder我可以看到你在說什麼 - 我想這是你想要退後和抽象的東西。 Java沒有任何行爲或使用類似dll或可執行文件的文件。每個Java類文件在JVM的眼中都是相同的。 – 2011-03-03 21:37:41
Java有jar文件(Java ARchive)。這可以作爲主程序或附加庫運行。
你可以說「可執行JAR」(在其清單中聲明瞭一個主類)是EXE的Java等價物,而其他的JAR更像DLL。
相似性可能比你意識到的更緊密,因爲AFAIK在Windows中的差別也很小,文件格式基本相同,你可以通過命令行從DLL執行代碼。
Java的庫相當於一個jar文件,您可以將代碼打包在一起。
此外,您可以將一個清單文件打包到名爲META-INF/manifest.mf的jar文件中,並帶有一個指令,該指令指出當java運行庫以如下方式調用jar時運行此類: java -jar MyApp .jar
這使您獲得與庫和可執行文件等效的內容。
- 1. 如何區分Web應用程序或獨立應用程序?
- 2. 如何使用itext等庫來分發java應用程序?
- 3. 如何使用庫依賴鏈來分發Java應用程序?
- 4. 如何在通用應用程序中區分iPhone和iPad?
- 5. Java Web應用程序和Java企業應用程序有什麼區別?
- 6. Java Web應用程序和Java企業應用程序有什麼區別
- 7. 如何區分PhoneGap應用程序和本機瀏覽器?
- 8. 如何區分應用程序狀態和資源狀態
- 9. 如何區分應用程序和基礎架構端點?
- 10. 如何區分頁面和應用程序?
- 11. 如何區分原生和混合移動應用程序?
- 12. 區分Google Analytics(分析)跟蹤Facebook應用程序和Web應用程序
- 13. 如何捆綁Java應用程序和Oracle數據庫
- 14. 如何從android應用程序和java應用程序導入gradle java模塊
- 15. IntelliJ中的Java EE應用程序和Web應用程序有什麼區別?
- 16. 我們如何區分c#和silverlight實用程序類和ui?
- 17. Java和PHP應用程序
- 18. Win32應用程序的分區按鈕
- 19. 分析多線程Java應用程序
- 20. 遠程分析Java應用程序
- 21. Java EE應用程序應如何分離?
- 22. 區分Java線程和OS線程?
- 23. 如何在Java Web應用程序中設置區域設置?
- 24. ,我如何在庫中使用系統和應用程序庫?
- 25. iOS應用程序 - 如何製作和調用運行時庫/應用程序
- 26. 如何區分應用程序中的責任?
- 27. 如何區分web服務請求是從android應用程序?
- 28. 如何從(.net)應用程序中重新格式化分區?
- 29. 如何區分Android應用程序中的移動運營商?
- 30. 如何自動區分兩個iOS應用程序構建包
很好的答案。一個挑剔的是,jar文件指定了一個main * class *而不是一個main *方法*。 – 2011-03-03 21:29:09
另外,jar文件可以包含*多個主要方法。 – 2011-03-03 21:31:21
其實它是一種方法。類名可以是任何東西,但是該方法必須被稱爲'main',供JVM識別它。 – 2011-03-03 21:31:52