Java应用程序是如何部署在“现实世界”?(How are Java applications de

2019-09-03 04:24发布

作为一个新手到Java编程的世界里,这个问题一直猛然一惊我的脑海里。 我首先认为,所有的Java文件都被压缩到applets ,然后跑了,但我很快意识到,这是情况并非总是如此。 可能有人向我解释我们是如何交织实际上我们的Java应用到日常生活的真实的产品?

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

Answer 1:

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

从理论上讲,你可以压缩你的原始目录结构.class在它的文件,并提供运行shell脚本/指令java用户命令。 我不建议这样做,因为它是一种非专业的,需要你保持一个shell脚本,你希望能够在其上运行程序的每个操作系统。

Jar文件用于打包库,但你也可以在它的清单文件,上面写着,“当用户双击/执行此操作,运行这一类”。 这个类可以启动GUI或者是无头任务响应参数等。

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

你可以有一个war文件 ,这是一个打包的Web应用程序的方式。 你把这个给Web服务器,它知道如何部署它,这样就可以访问网页。 一个例子的Web服务器/容器是Tomcat的或码头 。

你可以有一个EAR文件可以包含在它里面其他战争文件。 这是用于需要的JavaEE的功能性(的EJB,JMS队列等)其它部件的应用程序。 应用程序服务器的一个示例是JBoss的或GlassFish的 。

还有Java Web Start的应用程序。 这些都是你可以通过访问网页上运行的应用程序,但他们得到下载到您的计算机,并在用户的计算机上运行(而不是在服务器的后端,就像一场战争/耳朵)。

还有的JavaFX 。 我不知道,虽然任何事情。 通过略读常见问题 ,这似乎是Java的答案, Adobe的Flex 。 您配置UI组件与XML配置。 我不知道的JavaFX应用程序使用的格式,但它说,“部署在桌面上或在浏览器中”。


作为索蒂里奥斯Delimanolis在评论中提及的下方,你可以建立像蚂蚁或Maven构建系统这些文件。 您也可以使用附带的Java / JavaEE的SDK工具建立他们“手动”。 例如,你应该有一个jar在你的路径,如果你安装了SDK命令。 下面是这些构建系统的一些细节:

  • Maven的
    1. 高级别(你告诉它来构建,而不是如何构建它)
    2. 绝不仅仅是一个构建系统等等。 它也有依赖关系管理等。
    3. 自以为是(它使用约定优于配置,各配置文件,生成1个伪影等)
  • 蚂蚁
    1. 低电平(你告诉它如何构建的东西)
    2. 灵活
    3. 配置文件可以做任何你想要的,只要你想建立的许多文物
    4. 简单易学
  • SDK工具
    1. 始终保持最新状态。 EG:非常罕见的,行家/蚂蚁可能无法设置一个配置选项
    2. 难记的命令
    3. 非常低的水平
    4. 就其本身而言,不能重复(EG:除非你建立一个脚本,你必须键入每次自己的jar命令)


Answer 2:

  • 小程序从来没有真正流行起来,而很少采用时下。
  • 简单的应用程序可以部署为“可执行” 的JAR文件,这基本上与ZIP告诉哪一个类包含运行main方法的JVM额外的元数据归档。 他们可以使用-jar选项在命令行上运行,或通过双击大多数桌面环境(这需要安装,以及一个JVM)。
  • 桌面应用程序可以通过部署Java Web Start的或类似安装的IzPack或Install4J ,但Java桌面应用程序都不是很常见的两种。
  • 大多数Java软件目前在服务器(Web服务器或应用服务器),只运行。 它们通常部署为WAR或EAR文件,这也是ZIP包含类和其他资源档案。 然后,这些应用程序遵循一个服务器组件中运行的Servlet或EJB标准。


Answer 3:

创建一个可执行的JAR,它被放入一个Web服务器或由另一个项目,是前两个中的一个库的战争。



Answer 4:

如果应用程序是平均到客户端上运行,它被打包为一个可执行的JAR,然后再打包成一个应用包(苹果机),也许包裹在一个exe文件(Windows)中,或者用一个可执行脚本,将推出JAR配对并设置任何所需的VM参数。

如果它是一个Web应用程序的一部分,则其将被打包为WAR或EAR和放置到Web服务器上的适当位置。

如果它只是一个图书馆,那么它通常打包为一个JAR(非执行)和分布式因此用于集成到更大的项目。

小程序,然后跑了,但我很快意识到,这是情况并非总是如此

其实,小应用程序都是时下罕见的,他们不鼓励使用。



文章来源: How are Java applications deployed in the “real world”?