我知道
编译是将源代码转换为目标代码的行为。
链接是将目标代码与库组合成原始可执行文件的行为。
构建是由编译和链接组成的序列,可能还有其他任务,例如安装程序创建。
但是当我想在Java Web项目中看到我的更改时,我还必须部署它们(在构建之后)。 Netbeans在部署项目时会做什么?
答案 0 :(得分:5)
您的定义似乎来自本机代码编译器(C,C ++,Pascal等)的世界。在Java中,编译只是将Java代码(文本)转换为Java字节码的过程,Java字节码也是高级代码,而不是对象(机器)代码。
每次应用程序在虚拟机内运行时都会发生Java链接,其中字节码中的符号被解析为对其他加载的字节码的引用。所以java中的序列实际上是:编译 - >部署 - >链接 - >运行
一旦运行,JVM 可以选择将Java字节码转换为机器代码以便直接执行,但它也可以只解释字节码。
在这种情况下,部署只是告诉应用程序服务器代码所在的位置并运行应用程序描述符中定义的启动代码(例如,web.xml中web.xml中定义的Servlet和Filter初始化)。
答案 1 :(得分:3)
它通知应用程序服务器(例如tomcat)你的应用程序是否存在,配置它并启动它,以便通过http获得它。