一尘不染

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

java

作为Java编程领域的新手,这个问题一直困扰着我。我首先相信所有Java文件都会被压缩applets并随后运行,但是我很快意识到情况并非总是如此。有人可以向我解释我们如何将Java应用程序实际上编织到日常生活的真实产品中吗?

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


阅读 188

收藏
2020-12-03

共1个答案

一尘不染

这取决于应用程序。有许多选项,取决于您希望用户如何使用您的应用程序。通常将其包装为罐子或专用罐子(战争,耳朵)。

从理论上讲,您可以压缩包含.class文件的原始目录结构,并提供运行脚本java命令的shell脚本/指令。我不建议这样做,因为它有点不专业,并且要求您为要在其上运行程序的每个OS维护一个Shell脚本。

Jar文件用于打包库,但您也可以在其中包含一个清单文件,该清单文件显示为:“当某人双击/执行此文件时,运行该类”。该类可以启动GUI或成为响应参数等的无头任务。

您可以像您所说的那样拥有applet。这些程序在用户的浏览器中运行。

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

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

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

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


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

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