我继承了一个旨在成为多代理开发平台的 Java 项目。这个想法是您可以创建在平台上运行的“应用程序”。我正在寻找一种分发基础平台的方法,以便最终用户可以将应用程序(可能打包在 jar 中)添加到预定义的文件夹中,将对所述 jar 存在的引用添加到平台读取的某个清单文件中,以及因此可以从中访问文件。
我查看了以下答案,但这些似乎要求平台代码在设计时知道类的名称:
理想情况下,我希望以下结构起作用:
- 主目录:platform.jar、apps.manifest、Apps(目录)
- Apps/App1/app1.jar, Apps/App2/app2.jar, ..., Apps/AppN/appN.jar
apps.manifest 将包含每个应用程序的条目,其中将包括 jar 的路径,以及作为主要应用程序(实现公共接口)对象的类的名称。
在我的 platform.jar 中的主要代码中,我想阅读清单,注意有 N 个应用程序,并且能够调用ApplicationOne appOne = new ApplicationOne(this)
whereApplicationOne
是主要应用程序对象的名称 in app1.jar
,并且是对保存this
的对象的引用platform.jar
对应用程序的引用。
如果所有 jars(platform.jar
和应用程序 jars)都在用户的类路径中,它会像上面那样工作吗?如果是这样,有没有办法临时将一个目录(和所有子目录)添加到 Java 中的用户类路径中,我可以在运行时运行它platform.jar
?我临时询问,因为封闭文件夹应该可以在文件系统上移动。
任何关于这个问题的建议,以及关于改进问题的任何建议都表示赞赏,因此它更清晰、更容易阅读。
谢谢