【发布时间】:2012-11-13 07:39:45
【问题描述】:
我继承了一个旨在成为多代理开发平台的 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),其中ApplicationOne是@987654326中主要应用程序对象的名称@,而this 是对来自platform.jar 的对象的引用,其中包含对应用程序的引用。
如果所有 jars(platform.jar 和应用程序 jars)都在用户的类路径中,它会像上面那样工作吗?如果是这样,有没有办法在 Java 中临时将一个目录(和所有子目录)添加到用户的类路径中,当我运行 platform.jar 时我可以运行它?我临时询问,因为封闭文件夹应该可以在文件系统上移动。
感谢您提供有关该问题的任何建议,以及有关改进问题的任何建议,使其更清晰、更易于阅读。
谢谢
【问题讨论】:
-
如果您可以在“应用程序”中添加注释,这可能会有所帮助:stackoverflow.com/questions/259140/…