Java 在运行时使用清单文件加载JAR
我继承了一个Java项目,该项目旨在成为多代理开发的平台。其想法是,您可以创建在平台上运行的“应用程序”。我正在寻找一种方法来分发基础平台,这样最终用户可以将应用程序(可能打包在jar中)添加到预定义的文件夹中,将对所述jar存在的引用添加到平台读取的某个清单文件中,从而可以从中访问文件 我已经看到了以下答案,但这些答案似乎要求平台代码在设计时知道类的名称:Java 在运行时使用清单文件加载JAR,java,jar,classpath,Java,Jar,Classpath,我继承了一个Java项目,该项目旨在成为多代理开发的平台。其想法是,您可以创建在平台上运行的“应用程序”。我正在寻找一种方法来分发基础平台,这样最终用户可以将应用程序(可能打包在jar中)添加到预定义的文件夹中,将对所述jar存在的引用添加到平台读取的某个清单文件中,从而可以从中访问文件 我已经看到了以下答案,但这些答案似乎要求平台代码在设计时知道类的名称: 理想情况下,我希望以下结构能够正常工作: 主目录:platform.jar、apps.manifest、apps(目录) App
- 主目录:platform.jar、apps.manifest、apps(目录)
- Apps/App1/App1.jar,Apps/App2/App2.jar,…,Apps/AppN/AppN.jar
ApplicationOne appOne=new ApplicationOne(this)
,其中ApplicationOne
是app1.jar中主要应用程序对象的名称,而这个
是对platform.jar
中的对象的引用,它保存了对应用程序的引用
如果所有的jar(platform.jar
和应用程序jar)都在用户的类路径中,它会像上面那样工作吗?如果是这样的话,有没有办法在Java中临时向用户的类路径添加一个目录(以及所有子目录),我可以在运行platform.jar
时运行这个目录?我暂时这样问,因为附带的文件夹应该可以在文件系统上移动
任何关于这个问题的建议,以及任何关于改进这个问题的建议,都是值得赞赏的,因此它更清晰、更容易阅读
谢谢听起来API可能有用
服务是一组众所周知的接口(通常是抽象的)
上课。服务提供者是服务的特定实现。
提供者中的类通常实现接口和
在服务本身中定义的类的子类。服务提供者
可以安装在Java平台的实现中
扩展名,也就是说,将jar文件放入任何常用的
扩展目录
请参阅其用法如果您的“应用程序”中有注释,这可能会有所帮助: