如何使struts2项目成为可执行应用程序

如何使struts2项目成为可执行应用程序,struts2,installation,executable,war,Struts2,Installation,Executable,War,我使用Apache服务器和MySQL数据库开发了一个Struts2项目 有没有可能使这个应用程序成为一个可执行的应用程序,这样我就不需要将JDK、Apache和MySQL分别提供给用户。安装程序可以自己安装所有这3个 我也可以这样做,只有一个用户可以使用这个应用程序。请说明。通常,Web应用程序有一个中央服务器(至少有一个Java虚拟机、一个Web服务器/应用程序服务器、一个数据库和包含Java代码的Web应用程序),所有客户端计算机都使用浏览器连接到它 从您的描述中产生的应用程序似乎是单一的,

我使用Apache服务器和MySQL数据库开发了一个Struts2项目

有没有可能使这个应用程序成为一个
可执行的
应用程序,这样我就不需要将JDK、Apache和MySQL分别提供给用户。安装程序可以自己安装所有这3个


我也可以这样做,只有一个用户可以使用这个应用程序。请说明。通常,Web应用程序有一个中央服务器(至少有一个Java虚拟机、一个Web服务器/应用程序服务器、一个数据库和包含Java代码的Web应用程序),所有客户端计算机都使用浏览器连接到它

从您的描述中产生的应用程序似乎是单一的,就像Swing或Visual Basic中的GUI应用程序一样;您将其安装到客户端,每个客户端都有每个组件的副本。如果你安装20次,你将有20个数据库,20个文件副本,等等。。。 即使在客户机-服务器应用程序中,使用集中式数据库和分布式代码,问题始终与客户机相关;您无法知道系统是否正常,您正在自动安装数据库、JDK等。。。已经有该软件,可能在其他版本中,或环境变量混乱等。当您需要更新软件或调整系统时,您需要远程或亲自物理登录到该pc。这就是为什么选择Web应用程序而不是分布式应用程序的一些原因

如果你需要为你的应用程序设计一个“包”,让一个愚蠢的用户一键安装(比如说,你的应用程序的一个便携式版本,让你的PM在远程位置执行一些演示,或者把它交给大老板让他看),你应该真正评估创建虚拟机的可能性

虚拟机是一个大文件(在硬盘上,或通过USB密钥读取,等等),一旦由虚拟化软件(通常是创建虚拟机的同一软件)装载,它将在来宾操作系统的窗口中运行整个新操作系统

实现这一点的主流软件是(免费和跨平台),或者您可以使用

那么,你需要

  • 下载VMWare Player
  • 下载您喜爱的Linux发行版的ISO(我希望您不要使用Windows作为服务器)
  • 使用VMWare Player为您的Linux发行版创建一个10GB分区,然后安装它
  • 在ISO中插入类似(的免费版本)
  • 安装Linux发行版
  • 安装并配置所有需要的软件(Apache、MySQL、您最喜欢的浏览器等;JVM通常已经存在)
  • 安装您的web应用程序

然后,您将拥有一个物理文件,其中包含一个完整的Linux操作系统,所有需要的软件都已调试好:只需将此文件分发给Windows、Mac或Linux用户,他们只需要安装VMWare Player即可在Linux操作系统中运行您的文件并访问(其副本)您的应用程序。

使用虚拟机,制作快照,发布快照。用户所需的唯一软件是虚拟化软件(例如VMWare Player free)。@Gauravisher这意味着您应该安装应用程序、MySQL和您需要的所有其他软件,并分发快照。希望你能理解。这能解决你的问题吗?谢谢你的回复Andrea。但这将使它成为一项非常繁忙的任务,并且需要交付一个非常大的文件,正如您所说的。没有任何软方法可以做到这一点。如果我分别交付Apache、MySQL和应用程序,是否可行/良好。如果是,那么我的应用程序将如何交付(以什么格式,例如WAR/JAR/EXE)。还请告诉我如何阻止用户进一步分发我的应用程序副本。如果您向他们提供源代码(可以反编译.class;),则您不能。然后,你应该真正使用服务器上的所有资源,并将其打开给他们的浏览器:使用VPN,这样就没有人会从你那里窃取任何东西,你会在需要时通过授予访问者的IP按需访问来将访问者列入白名单。(这是网络管理员的工作,而不是开发人员的工作…)