Java应用程序如何在“现实世界”中部署?
作为Java编程世界的新手,这个问题一直困扰着我。我最初认为所有的Java文件都被压缩然后运行,但我很快意识到情况并非总是如此。有人可以向我解释一下,我们实际上是如何将Java应用程序交织成日常生活的真实产品吗?applets
TL;DR:我们如何实现我们的代码以供实际使用?
作为Java编程世界的新手,这个问题一直困扰着我。我最初认为所有的Java文件都被压缩然后运行,但我很快意识到情况并非总是如此。有人可以向我解释一下,我们实际上是如何将Java应用程序交织成日常生活的真实产品吗?applets
TL;DR:我们如何实现我们的代码以供实际使用?
这取决于应用程序。有许多选项,具体取决于你希望用户如何使用你的应用。通常它被包装成一个罐子或一个专门的罐子(战争,耳朵)。
从理论上讲,您可以压缩原始目录结构及其中的文件,并提供一个shell脚本/指令来运行用户的命令。我不建议这样做,因为它有点不专业,并且需要您为希望能够运行程序的每个操作系统维护一个shell脚本。.class
java
Jar文件用于打包库,但你也可以在其中有一个清单文件,上面写着“当有人双击/执行这个时,运行这个类”。该类可以启动 GUI,也可以是响应参数等的无外设任务。
你可以有小程序,就像你说的。这些程序在用户的浏览器中运行。
您可以有一个 war 文件,这是打包 Web 应用程序的一种方法。您将它提供给Web服务器,它知道如何部署它,以便您可以访问网页。一个示例Web服务器/容器是tomcat或jetty。
你可以有一个耳朵文件,里面可以包含其他战争文件。这用于需要javaee功能的其他部分(ejbs,jms队列等)的应用程序。应用程序服务器的一个例子是jboss或glassfish。
还有java Web启动应用程序。这些应用可以通过访问网页来运行,但它们会下载到您的计算机并在用户的计算机上运行(而不是在服务器的后端,如在战争/耳朵中)。
还有javafx。我对此一无所知。通过略读FAQ,它似乎是Java对Adobe Flex的回答。使用 xml 配置配置 UI 组件。我不确定JavaFX应用程序使用什么格式,但它确实说,“在桌面或浏览器中部署”。
正如Sotirios Delimanolis在下面的评论中提到的,您可以使用Ant或Maven等构建系统来构建这些文件。您还可以使用java / javaee sdk附带的工具“手动”构建它们。例如,如果安装了 sdk,则路径中应该有一个命令。以下是这些构建系统的一些详细信息:jar