宾得数据集成8.0.x正在使用Janino 2.5.16,发布于2010年,用于编译用户定义的Java步骤。在宾得有一个JIRA来更新这个版本,以使用一个更新的Janino版本,这将带来新的java8相关特性在宾得v8.2.0GA中。但目前还没有关于何时发布这一消息的信息。
对于UDJC,我还有其他方法可以使用更新的janino版本(janino-3.0.8.jar)来退出宾得吗?我试图在lib中复制已更新的jar,还添加了Commons-编译器-3.0.8.jar来实现依赖。现在,当我打开勺子时,我会得到以下错误:

请就如何实现这一目标提出建议。我明白,仅仅更换罐子可能还不够,只是想要做些别的事情。
发布于 2018-10-16 10:36:08
这可不容易。即使是现在,自从您有了ClassNotFound之后,janino的公共api就被改变了。有些类被删除,有些类被更改。更新它的实际需要是什么?
如果您需要非常复杂的业务逻辑,那么创建自定义插件。文档和教程是可用的,您可以查看当前内置插件的来源(源可以在github上获得)。
除了java8支持之外,有什么重要的新版本的janino没有呢?结帐水壶引擎,查看UserDefinedClass步骤的源代码,修改代码以支持新的janino版本,测试并自己构建pdi水壶,并尝试向存储库的维护人员发送推送请求。
这其中任何一个相当复杂,这个插件是内置到引擎,你必须做自己的构建。自己的建设意味着,你必须自己支持它。这是不平凡的,项目是巨大的,现在更大,而且还在不断发展,我花了几天的时间来做我的第一个定制构建(版本4,在常春藤中),只是为了更好地了解和调试复杂的案例,它从来没有在生产中使用。
存储库的维护人员必须有充分的理由将您的更改包含到流中,它必须经过很好的测试,而且过程很长,而且很可能不值得。自2010年以来,我可能在发布说明中看到了很多变化,新版本的java已经具备了在运行时编译的能力。
我的建议是让你自己的插件。
https://stackoverflow.com/questions/52620277
复制相似问题