在用户下载程序之前编译服务器上的Java程序
问题描述:
我做了一个快速搜索,找不到任何关于此主题的内容。我甚至不确定这是否可能,但我很好奇。在用户下载程序之前编译服务器上的Java程序
是否有可能在用户下载程序之前在服务器上编译Java程序。我能想到的应用程序是在用户下载程序之前即时修改程序的源代码。这对于根据用户输入或网站上的设置修改程序的设置很有帮助,而且这些更改很难融入到程序中,因此它们下载的是独立程序,它是定制的并且完全便携。我想到的另一个应用程序是,如果每个用户都在程序中使用不同的功能组合,所以它只用他们需要/需要的功能集进行编译。
我有几个项目的想法,我可以测试了这一点,但是这主要是一个学术的思想和我的好奇心。
所以长话短说,没有人知道,可以使这样的工作系统中的任何技术?
答
我写使用编译API(自带的Java 6)来编译代码,力旺电子图书馆,但我建议你不需要预先生成代码的事情你可以用生成的代码,你可以用做做动态代码。可能会有轻微的性能优势,但我建议您尝试使用动态代码(即带有循环的代码,如果语句和反射)执行您的代码首先要做的事情,因为这非常简单并且可能会做到你要。
即使你必须生成的代码,它是有用的先写在非生成的表单代码,以便你清楚你所需要的代码来执行。
答
当然,这是可能的。
只是让下载链接指向一些脚本,即编译/包的源发回的结果。这可以通过几行代码在PHP中实现。它与验证码非常相似:即时生成的唯一数据,通过URL检索。
我自己也想过这个想法模糊协议的目的和“软件注册密钥算法”的产生。
但是我会推荐你将你想要重新编译的部分分解成一个单独的类/类集,只编译这些部分,并根据请求将其与已编译的程序的其余部分一起打包。
您是否在寻找某种心理服务器来了解用户即将下载该程序的时间? – Falmarri 2011-01-28 08:52:54
即使有可能,我也会建议只打包每个用户的应用程序,并简单地修改一些配置文件(JNLP非常适合这个!) – 2011-01-28 09:09:56
@Falmarri,没有更多的用户选择Web上的功能集表格,然后该程序“烘焙”,因此它对于它们的配置是特定的。是的,我可以做这一切与配置文件等,但正如我所说的这个问题出于好奇作为一个“这是可能的”而不是“我想这样做” – 2011-01-28 09:13:51