2011-05-29 114 views
3

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

当上述事情被讨论时,我只是一个听众。

正在做上述问题可能吗?我们如何将战争文件转换为exe文件并嵌入逻辑来区分高级或基本版本。

+0

war文件?你的意思是.jar吗? – Moshe 2011-05-29 13:08:28

+0

没有战争文件。 Web应用程序存档。 – vinoth 2011-05-29 13:09:46

+3

我认为,制作战争文件到可执行文件没有任何意义.. – 2011-05-29 15:01:36

回答

3

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

这些是2个不同的要求,它们之间没有任何关系。

如果您有一个Web应用程序,您可以使用网页输入序列密钥(例如Jira),也可以让密钥(或密钥文件的文件名)在Context.xml中编写,并让servlet读取该上下文参数。根据关键,应用程序可以允许或不允许某些功能。

至于转换为可执行文件,可执行文件有多种解释。我认为“战争”文件是足够可执行的 - 将其转储到tomcat中并运行。

如果你想单机版,你可以提供一个tomcat发行版,并且你的应用程序可以预先部署(同Jira一样),或者使用Jetty嵌入式容器。虽然这可能不适合繁重的工作量。

你甚至可以尝试使用gjc(Gnu Java编译器)将jetty +你的web应用程序转换为本地exe文件,尽管我怀疑它会像正常部署的版本一样工作。

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

+0

优秀的答案:)谢谢! – Killrawr 2012-05-19 06:30:31

3

WAR是web应用程序存档。它应该在带有servlet容器的web服务器上执行。 executabele JAR需要一个带有main()方法的类,但是一个web应用程序通常没有任何东西,因为这是servlet容器的责任,而不是web应用程序。通常情况下,WAR将按原样分发,serveradmin负责将其部署到servlet容器。如有必要,您可以包括一些文件,介绍如何为各种容器做到这一点。

如果你真的打算出售一个Web应用程序作为桌面应用程序的一些不明显的原因,那么你最好的选择是包括一个像Jetty这样的可嵌入的servlet容器,并且沿着它创建一个带有main()方法的类,嵌入式servlet容器的WAR文件部署到它并运行servlet容器。这可以反过来被包装在一个可执行文件JAR中。

或者,您也可以将其托管在互联网上某处并提供特定的登录名。