我正在考虑编写一个Java应用程序,用户可以用Java编写一些模块并将它们添加到此应用程序中的库中。这些模块将是一些使用主应用程序数据的计算。也许有点像Office中的VBA 如果有人能给我一些启示,我会很感激,因为我在网上找不到有用的东西 提前谢谢!
答案 0 :(得分:1)
如果您愿意,可以尝试从头开始开发模块框架。 但是,如果你正在开发任何严肃的东西,你应该考虑使用OSGi。
答案 1 :(得分:1)
理论上它是可能的。您可以允许用户编写java类,然后您可以使用java编译器编译该类,生成.class
个文件。您可以使用自定义类加载器加载它们(可能是URLClassLoader
或其子类等。
BUT 这是非常严肃的应用。实际上它是一种IDE。所以,你真的希望这次检查可以创建基于Eclipse的应用程序,即实现几个eclipse插件。
其他方法可能是允许用户在一种流行的脚本语言中使用代码。例如groovy,它具有类似java的语法,但可以在没有编译的情况下运行,也不需要创建类等.Javascript也是一个选项。 Javascript解释器是JDK的一部分,因此您甚至不需要外部依赖项。
答案 2 :(得分:0)
最好不要使用某种形式的jvm脚本语言。像groovy,jruby或jython这样的东西。那些不需要实际编译,可以作为源存储在您的系统中。另外,他们也可以很好地编写代码。 Groovy的优点是成为java的超集。 (在大多数情况下)你可以降级为java代码,并在groovy解释器中运行它。