当前位置: 首页 > 面试题库 >

Java 读我自己的Jar清单

司雅畅
2023-03-14
问题内容

我需要阅读该Manifest文件,该文件提供了我的课程,但是当我使用时:

getClass().getClassLoader().getResources(...)

我MANIFEST从第一个.jar加载到Java运行时中就得到了。
我的应用程序将从appletWebstart运行,
所以我无法访问自己的.jar文件。

我实际上是想Export-package.jar启动Felix OSGi的中读取属性,因此可以将这些包公开给Felix。有任何想法吗?


问题答案:

你可以执行以下两项操作之一:

调用getResources()并遍历返回的URL集合,将它们作为清单读取,直到找到你的URL:

Enumeration<URL> resources = getClass().getClassLoader()
  .getResources("META-INF/MANIFEST.MF");
while (resources.hasMoreElements()) {
    try {
      Manifest manifest = new Manifest(resources.nextElement().openStream());
      // check that this is your manifest and do what you need or get the next one
      ...
    } catch (IOException E) {
      // handle
    }
}

你可以尝试检查是否getClass().getClassLoader()是的实例java.net.URLClassLoader。Sun的大多数类加载器包括AppletClassLoader。然后,你可以对其进行转换并调用findResource()已知的(至少对于applet而言)直接返回所需的清单:

URLClassLoader cl = (URLClassLoader) getClass().getClassLoader();
try {
  URL url = cl.findResource("META-INF/MANIFEST.MF");
  Manifest manifest = new Manifest(url.openStream());
  // do stuff with it
  ...
} catch (IOException E) {
  // handle
}


 类似资料:
  • 在尝试学习如何使用storm时。我决定编译我自己的著名WordCount拓扑实例,看看它是如何实现的。代码与示例完全相同。(https://github.com/apache/storm/blob/master/examples/storm-starter/src/jvm/org/apache/storm/starter/WordCountTopology.java) 然而,每当我尝试运行jar时

  • 问题内容: 在您的所有帮助下,我得以用Java完成我的第一个项目。现在,我想创建一个jar并运行jar中的应用程序(Java项目- 这是一个普通的控制台应用程序,该应用程序依赖于另一个项目(控制台应用程序))。 我通过右键单击创建了一个带有Eclipse的罐子-导出-创建了一个罐子。当我尝试从cmd运行此jar时,出现错误(以下是我得到的错误) 我用Google搜索了错误-他们中的大多数人都创建了

  • 问题内容: 我想使用自己的密钥使用AES加密字符串。但是我在密钥的位长上遇到了麻烦。你能否查看我的代码并查看我需要修复/更改的内容。 现在,我得到一个异常“ 无效的AES密钥长度:86个字节 ”。我需要垫我的钥匙吗?我该怎么办? 我还需要为ECB或CBC设置任何内容吗? 问题答案: 如注释中所写,旧代码不是“最佳实践”。你应该使用像PBKDF2这样的密钥生成算法,并且迭代次数很高。你还应该至少部分

  • 问题内容: 我正在开发一个Laravel 4应用,该应用将通过JSON REST API和Web UI对数据集进行相同的CRUD操作。为了防止违反DRY原则,我的UI应该通过将所有请求从UI路由回API来使用我自己的API。我不确定如何使这项工作的最佳方法。大概我将拥有单独的UI和API控制器,并以某种方式路由请求。还是我应该完全采用另一种方法? 谢谢。 问题答案: 我实际上是在修改相同的想法,而

  • 我创建了一个java应用程序来从Gmail地址读取。当我从IDE(Intellij)执行脚本时,脚本运行完美。但是通过生成jar文件并尝试执行jar: 我有以下错误: 这是我的POM文件:

  • 在Java你有很多列表函数。例如: List.size(),List.is空()... 是否有可能使我自己的函数,如List.null或空(),我怎么能做到这一点? 这会对我帮助很大。