将war文件转换为可执行文件

我的公司开发了一个Web应用程序(J2EE环境/ Tomcat服务器),并希望将其作为产品出售。 客户可以将此产品用作基本版或高级版。 在高级版中,客户有一些额外的function(可能是一些额外的链接)。 这种区别是基于序列密钥进行的。

在讨论上述事情时,我只是一个倾听者。

是否可以解决上述问题? 我们如何将war文件转换为exe文件并嵌入逻辑以区分高级版或基本版。

我们如何将war文件转换为exe文件并嵌入逻辑以区分高级版或基本版。

这些是两个不同的要求,彼此无关。

如果你有一个Web应用程序,你可以使用网页输入序列号(例如Jira就可以),或者你可以让密钥(或密钥文件的文件名)写在Context.xml中,然后让它servlet读取该上下文参数。 根据密钥,应用程序可以允许或不允许某些function。

至于转换为可执行文件,对可执行文件有多种解释。 我认为“war”文件足够可执行 – 将它转储到tomcat中然后运行。

如果您希望它是独立的,您可以提供预先部署您的应用程序的tomcat分发(再次,像Jira一样),或使用Jetty嵌入式容器。 虽然这可能不适合繁重的工作负载。

您甚至可以尝试使用gjc(Gnu Java编译器)将jetty +您的Web应用程序转换为本机exe,但我怀疑它将与正常部署的版本一样好用。

我建议你通过上下文参数注入密钥,或者创建一个管理页面n,你可以输入密钥。

WAR是一个Web应用程序存档。 它应该在带有servlet容器的Web服务器上执行。 可执行JAR需要一个带有main()方法的类,但Web应用程序通常没有任何内容,因为这是servlet容器的责任,而不是Web应用程序。 通常,WAR按原样分发,serveradmin负责将其部署到servlet容器。 如有必要,您可以包含一些描述如何为各种容器执行此操作的文档。

如果您真的打算出于某种不明显的原因将Web应用程序作为桌面应用程序出售,那么您最好的选择是包含一个像Jetty这样的嵌入式servlet容器,并在其上发布一个带有main()方法的类,它创建了一个实例。嵌入式servlet容器,将WAR文件部署到它并运行servlet容器。 这可以反过来包含在可执行的JAR中。

或者,您也可以在互联网上的某个地方托管它并提供特定的登录信息。