首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运行时的Java编译器

运行时的Java编译器
EN

Stack Overflow用户
提问于 2010-08-21 11:24:49
回答 6查看 1.9K关注 0票数 7

在我的当前项目中,我需要在运行时编译java代码(在后台处理来自用户的输入)。在类路径中,tools.jar可以很好地工作。然而,并非我的程序的所有用户都在他们的系统上安装了JDK。其中一些只有JRE,在这种情况下,运行时没有java编译器。我可以通过将Sun的tools.jar作为我工具的一部分来解决这个问题。

但是tools.jar非常大(>12 MB)。问题是我必须包含大jar文件,尽管我只对jar提供的功能的一小部分感兴趣。

  1. 是否有可能拆分tools.jar文件,使我有一小部分只编译java代码所需的类?
  2. 这是违法的吗?

非常感谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-08-21 11:53:35

Eclipse编译器只有1.6MB,无需Eclipse就可以工作。你可以下载它这里。此外,它似乎实现了JavaCompiler API。

它是在Eclipse公共许可证下获得许可的,因此将它包含在您自己的应用程序中应该没有问题。

票数 3
EN

Stack Overflow用户

发布于 2010-08-21 11:48:43

我认为分裂tools.jar是不可能的,也不应该包括tools.jar。

检查http://forums.sun.com/thread.jspa?threadID=5161541

您可以查找一些第三方Java编译器,并将您的代码更改为使用它。

  • GCJ是gcc的一部分,它编译了C、Fortran、Pascal和Java以外的其他编程语言。它还可以使用gcc的后端生成本机代码。Java
  • ECJ,,是Eclipse使用的开源增量编译器。
  • http://en.wikipedia.org/wiki/Jikes (这个版本不支持Java6,对Java5的支持也有限)

但我不知道用这些来编译的确切代码。

票数 1
EN

Stack Overflow用户

发布于 2010-08-21 12:09:47

我不会在运行时编译代码,而是用脚本语言重写代码并使用脚本框架。因此,jdk没有必要,也没有任何法律问题需要解决。然后,您还可以使用多种语言,如贝贝JavaScriptjython

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3537427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档