2011-03-03 10 views

回答

6

的種類。

大多數Java程序存儲在.jar文件中。

如果.jar指定了main方法,則它可以與啓動程序執行的.exe類似地進行調用。你可以用java -jar program.jar來做到這一點。

但是,任何.jar文件都可以從另一個文件加載,並且其中的代碼加載,類似於.dll。即使'庫'罐子有一個main方法,這也可以完成,它不會被自動調用。

+1

很好的答案。一個挑剔的是,jar文件指定了一個main * class *而不是一個main *方法*。 – 2011-03-03 21:29:09

+1

另外,jar文件可以包含*多個主要方法。 – 2011-03-03 21:31:21

+0

其實它是一種方法。類名可以是任何東西,但是該方法必須被稱爲'main',供JVM識別它。 – 2011-03-03 21:31:52

3

這個問題是無稽之談。 Java編譯成由虛擬機解釋的字節碼類文件。

你可以將一堆類文件放入一個zip文件中,並將其命名爲jar,但Java沒有exe或dll的模擬。

+0

其實,它的確如此。所有帶有'public static void main(String [])'的東西都類似於一個exe文件,所有帶有類文件的東西都類似於dll。 – corsiKa 2011-03-03 21:28:32

+0

這與EXE不太相似。操作系統不知道如何自行執行文件/二進制文件,只有JVM知道如何加載JAR並處理main()方法。 – 2011-03-03 21:29:47

+0

@glowcoder我可以看到你在說什麼 - 我想這是你想要退後和抽象的東西。 Java沒有任何行爲或使用類似dll或可執行文件的文件。每個Java類文件在JVM的眼中都是相同的。 – 2011-03-03 21:37:41

0

Java有jar文件(Java ARchive)。這可以作爲主程序或附加庫運行。

0

你可以說「可執行JAR」(在其清單中聲明瞭一個主類)是EXE的Java等價物,而其他的JAR更像DLL。

相似性可能比你意識到的更緊密,因爲AFAIK在Windows中的差別也很小,文件格式基本相同,你可以通過命令行從DLL執行代碼。

0

Java的庫相當於一個jar文件,您可以將代碼打包在一起。

此外,您可以將一個清單文件打包到名爲META-INF/manifest.mf的jar文件中,並帶有一個指令,該指令指出當java運行庫以如下方式調用jar時運行此類: java -jar MyApp .jar

這使您獲得與庫和可執行文件等效的內容。

相關問題