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