繁体   English   中英

在服务器上设置Java编译器?

[英]Set up Java compiler on server?

有没有办法在服务器上设置Java编译器来编译上传的脚本? 我的用例是用户可以上传程序的自定义Java脚本/插件。 然后服务器将编译这些脚本,并将.jar放在一个文件夹中。 然后,应用程序(用户正在开发的应用程序)将查询服务器以下载和使用可用的脚本/插件。 这可能吗? 如果是这样,怎么样?

*编辑:我无法在我的服务器上安装JDK,因为它是一个共享服务器。 有没有办法编译java而不安装任何东西(我知道这是一个愚蠢的问题,但问一下是不是有害...)? 我有PHP ....不是那会有所帮助。

我在这里回答了类似的问题:

动态代码执行

简而言之,Java Compiler API允许您从包含源代码的Java Strings创建编译的Java类文件。

这绝对是可能的。 您基本上只需要服务器将上传的代码保存到磁盘,然后使用Runtime#exec()在文件上调用javac 但是,如果服务器要向其类路径动态添加新类,则可能需要自定义Classloader

NB允许用户在您的服务器上执行任意Java会打开一个巨大的安全漏洞。

自定义类加载器推荐阅读:

编辑:对不起,如果这不是你想要的。 我以为你在考虑持续整合。

通常这是使用源代码控制和构建系统完成的,它被称为“持续集成”。 我个人正在使用Hg(mercurial)+ Maven + Continuum。

那么当我将新脚本提交给mercurial时,会发生什么事情,continuum将选择它并让maven检查更改,并构建(编译)项目。 通常一些单元测试甚至集成测试/性能测试等也在此时运行。

可以通过Continuum的Web界面(GUI)检索生成的二进制文件。

这是它的样子

至于下载和使用,许多人将生成的工件(jar)“部署”到maven存储库,其他应用程序可以从中下载jar并使用它。 部署也可以使用maven自动化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM