java – 如何集成beanshell

前端之家收集整理的这篇文章主要介绍了java – 如何集成beanshell前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个基于 Java的组件游戏引擎,现在当我对要重建的组件进行更改并重新启动编辑器以使更改生效(或者如果应用程序正在运行,我可以使用一些有限的热代码注入调试模式).

我正在寻找一种方法来允许用户修改组件的源并重新加载它们,而无需重新启动应用程序(可能只是退出并进入游戏模式).我还需要一个重要的功能是最终导出的代码应该是本地Java代码(所以最终结果中不应该使用解释器)).

你能给我指出如何在项目中集成beanshell解释器?我可以手动监视源文件夹进行更改,并将更新的java类提供给它,但是hotswap将如何发生呢?

解决方法

首先,标题有点混乱.您不需要集成BeanShell.你实际需要的是:

>定义一个正确的架构
>使用Java Compiler API来处理java类

建筑

假设你有一个对象图.有很多的对象,引用等等,所以用一个新的实例替换一些实例真的是一个棘手的任务.而不是解决这个问题,您可以将动态部分隐藏在“静态”代理之后.代理将处理所有重新加载的东西(包括文件夹监视).

重新加载之前:

重装后:

完成后,您可以轻松跟踪变化,并在需要时更新动态部分.

Java编译器API

而不是使用解释语言,您可以使用Java,即时编译,并使用’Class.forName()’加载.有很多不同的例子,因为这个方法有一段时间.

这里有一些细节:

> Add dynamic Java code to your application
> Compiling fully in memory with javax.tools.JavaCompiler

猜你在找的Java相关文章