当前位置: 首页 > 面试题库 >

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

丘学海
2023-03-14
问题内容

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

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


问题答案:

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

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

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

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

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

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

还有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命令)


 类似资料:
  • 问题内容: 我最近一直在看Zookeeper,想知道当前是否有人在使用它,以及他们专门用于存储什么。 最常见的用例是用于配置信息,但是要存储哪种数据和存储多少数据? 问题答案: DOSGi 的Apache CXF实现使用zookeeper为其服务注册存储库。各个容器具有一个分布式软件(dsw)捆绑包,该捆绑包监听所有服务事件以及服务状态更改时的状态,该属性具有指示分发的属性。dsw与发现包进行通信

  • 我想在服务器上部署一个spring mvc中的Java web app build。我使用的是MilesWeb服务器。在尝试将应用程序部署到服务器后,我收到了以下异常日志,描述如下:“服务器遇到内部错误,导致无法满足此请求”。我需要帮助来找出我做错了什么。 你可以检查这个链接后,点击提交我得到上面的错误

  • 问题内容: 前几天,我遇到了sun.misc.Unsafe软件包,并对它的功能感到惊讶。 当然,该类是未记录的,但是我想知道是否有充分的理由使用它。在需要使用它的地方会出现什么情况?在现实世界中如何使用它? 此外,如果您确实需要它,这是否表示您的设计可能存在问题? 为什么Java甚至包括此类? 问题答案: 例子 VM“化身”。即无锁哈希表中使用的CAS(比较和交换),例如:sun.misc.Uns

  • 问题内容: 事情是这样的:我需要采取一定的Java EE Web应用程序并将其部署到Amazon EC2上(我需要设置第一)从下月开始(使用http://aws.amazon.com/free/faqs/ AWS免费使用-希望它支持Tomcat + MySQL / PostgreSQL。 问题:我从未部署过Java EE应用程序(甚至没有在专用主机上安装 普通的 应用程序),也从未设置过Amazo

  • 我似乎找不到任何关于如何在我的IBM Social Business SmartCloud站点中注册/部署应用程序的文档。这是在他们的云服务器上,而不是我自己的本地主机上。 我使用IBM SmartCloud Engage演示帐户订阅创建了一个Admin AppDeveloper用户帐户。我基本上是在尝试将HelloWorld iWidget添加到某个应用程序菜单中,但找不到注册/添加的位置,因此

  • 问题内容: 有时我会看到许多应用程序,例如msn,Windows Media Player等都是单实例应用程序(当用户在应用程序运行时执行时,将不会创建新的应用程序实例)。 在中,我为此使用类,但是我不知道如何在Java中执行此操作。 问题答案: 我在主要方法中使用以下方法。这是我所见过的最简单。