簡體   English   中英

構建和部署Java Web項目有什么區別?

[英]What is the difference between building and deploying a Java Web project?

我知道

編譯是將源代碼轉換為目標代碼的行為。

鏈接是將目標代碼與庫組合成原始可執行文件的行為。

構建是由編譯和鏈接組成的序列,可能還有其他任務,例如安裝程序創建。

(感謝Ignacio Vazquez-Abrams )。

但是,當我想在Java Web項目中看到我的更改時,我還必須部署它們(在構建之后)。 Netbeans在部署項目時做了什么?

您的定義似乎來自本機代碼編譯器(C,C ++,Pascal等)的世界。 在Java中,編譯只是將Java代碼(文本)轉換為Java字節碼的過程,Java字節碼也是高級代碼,而不是對象(機器)代碼。

每次應用程序在虛擬機內運行時都會發生Java鏈接,其中字節碼中的符號被解析為對其他加載的字節碼的引用。 所以java中的序列實際上是:編譯 - >部署 - >鏈接 - >運行。

一旦運行,JVM 可以選擇將Java字節碼轉換為機器代碼以便直接執行,但它也可以只解釋字節碼。

在這種情況下,部署只是告訴應用程序服務器代碼所在的位置並運行應用程序描述符中定義的啟動代碼(例如,web.xml中web.xml中定義的Servlet和Filter初始化)。

它通知應用程序服務器(例如tomcat)您的應用程序存在,配置它並啟動它,以便通過http提供。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM