运行时的Java编译器

Dipmedeep:

在我当前的项目中,我需要在运行时编译Java代码(在后台处理来自用户的输入)。这与classpath中的tools.jar一起正常工作。但是,并非我程序的所有用户都在其系统上安装了JDK。其中一些仅具有JRE,在这种情况下,运行时没有Java编译器可用。我可以通过将Sun的tools.jar作为工具的一部分来解决该问题。

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

  1. 是否可以分解tools.jar文件,使我只有一小类可以编译Java代码的类子集?

  2. 这是非法的吗?

非常感谢。

josefx:

eclise编译器只有1.6 MB,应该可以在没有Eclipse的情况下正常工作。您可以在此处下载而且看起来它实现了JavaCompiler api。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java JDK,编译器版本与Java运行时不兼容

例外:未加载运行时编译器

Go编译器运行时的语法和语义

除以0是编译器错误或运行时错误

未加载 Angular 5 运行时编译器

Java,C ++,Python和ObjC的在线编译器/运行时?

Java-什么时候发生编译器错误,什么时候发生运行时异常?

从命令行运行时,Eclipse的Java编译器会生成不同的堆栈跟踪

编译器在运行时将Java字节码转换为平台无关的C代码?

通用错误:未加载运行时编译器,

是否允许编译器在运行时调用立即(常量)函数?

为什么编译器允许引用用于C ++中的运行时多态?

Cabal配置,用于编译器标志和运行时选项

为运行时Javascript属性解析Typescript编译器消息

.NET运行时(CLR),JIT编译器到底在哪里?

运行时错误和编译器错误有什么区别?

Angular 8和惰性模块未加载运行时编译器

为什么在编写编译器时需要运行时库?

CSHTML文件中Lambda表达式的运行时编译器问题

Flatbuffer:运行时和编译器的兼容性

为什么编译器不能阻止这些运行时转换异常?

Angular AoT和汇总-错误:未加载运行时编译器

编译器发出std :: move()运行时调用?

在运行时调用bridge.net编译器

Vue 警告:模板编译器不可用的 Vue 仅运行时构建

ARM编译器如何处理运行时错误?

JavaScript onclick 事件编译器和运行时间

循环中的变量阴影错误未被编译器捕获并在运行时崩溃

可以将jaotc(Java提前编译器)与jlink(模块汇编器/优化器创建运行时映像)一起使用吗?