Java应用程序如何在“现实世界”中部署?

2022-09-03 00:08:06

作为Java编程世界的新手,这个问题一直困扰着我。我最初认为所有的Java文件都被压缩然后运行,但我很快意识到情况并非总是如此。有人可以向我解释一下,我们实际上是如何将Java应用程序交织成日常生活的真实产品吗?applets

TL;DR:我们如何实现我们的代码以供实际使用?


答案 1

这取决于应用程序。有许多选项,具体取决于你希望用户如何使用你的应用。通常它被包装成一个罐子或一个专门的罐子(战争,耳朵)。

从理论上讲,您可以压缩原始目录结构及其中的文件,并提供一个shell脚本/指令来运行用户的命令。我不建议这样做,因为它有点不专业,并且需要您为希望能够运行程序的每个操作系统维护一个shell脚本。.classjava

Jar文件用于打包库,但你也可以在其中有一个清单文件,上面写着“当有人双击/执行这个时,运行这个类”。该类可以启动 GUI,也可以是响应参数等的无外设任务。

你可以有小程序,就像你说的。这些程序在用户的浏览器中运行。

您可以有一个 war 文件,这是打包 Web 应用程序的一种方法。您将它提供给Web服务器,它知道如何部署它,以便您可以访问网页。一个示例Web服务器/容器是tomcatjetty

你可以有一个耳朵文件,里面可以包含其他战争文件。这用于需要javaee功能的其他部分(ejbs,jms队列等)的应用程序。应用程序服务器的一个例子是jbossglassfish

还有java Web启动应用程序。这些应用可以通过访问网页来运行,但它们会下载到您的计算机并在用户的计算机上运行(而不是在服务器的后端,如在战争/耳朵中)。

还有javafx。我对此一无所知。通过略读FAQ,它似乎是Java对Adobe Flex的回答。使用 xml 配置配置 UI 组件。我不确定JavaFX应用程序使用什么格式,但它确实说,“在桌面或浏览器中部署”。


正如Sotirios Delimanolis在下面的评论中提到的,您可以使用Ant或Maven等构建系统来构建这些文件。您还可以使用java / javaee sdk附带的工具“手动”构建它们。例如,如果安装了 sdk,则路径中应该有一个命令。以下是这些构建系统的一些详细信息:jar

  • 马文
    1. 高级(你告诉它要构建什么,而不是如何构建它)
    2. 不仅仅是一个构建系统。它还具有依赖关系管理等功能。
    3. 固执己见(它使用约定而不是配置,每个配置文件生成1个工件,依此类推)
  • 蚂蚁
    1. 低级(你告诉它如何构建东西)
    2. 灵活
    3. 配置文件可以做任何你想做的事情,构建尽可能多的工件。
    4. 简单易学
  • 开发工具包工具
    1. 始终保持最新。EG:极少数情况下,maven/ant 可能无法设置配置选项
    2. 难以记住的命令
    3. 非常低的水平
    4. 就其本身而言,不可重复(例如:除非您构建脚本,否则每次都必须自己键入jar命令)

答案 2
  • 小程序从未真正流行起来,现在很少使用。
  • 简单的应用程序可以部署为“可执行”JAR文件,这些文件基本上是带有附加元数据的ZIP存档,告诉JVM哪个类包含要运行的main方法。它们可以使用 -jar 选项在命令行上运行,也可以在大多数桌面环境中通过双击运行(这也需要安装 JVM)。
  • 桌面应用程序可以通过Java Web StartIzPackInstall4J等安装程序进行部署,但Java桌面应用程序也不是很常见。
  • 如今,大多数Java软件只能在服务器(Web服务器或应用程序服务器)上运行。它们通常部署为 WAREAR 文件,这些文件也是包含类和其他资源的 ZIP 存档。然后,这些应用程序按照 ServletEJB 标准在服务器组件内运行。

推荐