- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想象我的应用程序是这样的:我有一个加密文件的应用程序。我想稍后用另一个密码扩展我的应用程序(jar)中的密码。因此,我将有一个包含密码(jar 或 java 文件)的文件夹,我的应用程序将从该文件夹中读取文件。然后,在 GUI 中,将有一个包含文件(jar 或 java)的列表,其中有一个方法加密和解密(我会用反射来测试它)。用户将选择一个。
有人可以给我一个建议吗?如何让它可以扩展?或者我的应用程序 (.jar) 如何与另一个 .jar、.java 文件一起工作(读取并运行它们)?
最佳答案
另一种方法是 java.util.ServiceLoader
机制。 (阅读文档。)
您的附加 jar 将包含一个文件 META-INF/services/my.package.Cipher
列出你的 Cipher 接口(interface)(或抽象类)的所有实现,然后你可以说
ClassLoader cipherLoader =
new URLClassLoader(new URL[]{new URL("jar:file:myAdditional.jar")},
Cipher.class.getClassLoader());
ServiceLoader<Cipher> serviceLoader = ServiceLoader.load(Cipher.class, cipherLoader);
for(Cipher c : serviceLoader) {
c.encrypt(...);
}
使用 ServiceLoader
要求您的实现具有公共(public)无参数构造函数 - 如果没有,请改用 ServiceLoader
对于一些工厂接口(interface)。
URL 应该是 jar:
类所在的 jar 文件的 URL,或指向 .class
所在根目录的非 jar URL文件在(在它们的包结构中)。
关于java - 稍后如何使用另一个 .jar 或 .java 扩展我的 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5522645/
我正在编写一个插件,有一个ajax调用向用户显示数据。 如果用户想在ajax成功时添加一些js?他可以从他的 js 脚本中做到这一点吗,比如定位这个 ajax 成功事件。 例如: $(documen
我有 html 代码,例如 - x 最初插入 div 'insert_calendar_eda_form'。 Javascript代码 calendar_eda_add
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
我已经使用命令 sudo start myservice 启动了一个 upstart 服务。我想要一种方法,以便稍后我(或任何人)可以检查该服务是否已启动并正在运行。检查它的命令是什么? 最佳答案 找
我是一名优秀的程序员,十分优秀!