java - 如何从 jar 'within' 访问 jar 内的非类文件

标签 java jar

这应该很简单,但花了我几个小时。我在此网站上找到的所有内容都表明我做得正确,但仍然找不到该文件。

在 jar 文件内,我在顶层有两个文件“CDAkeystore.jks”和“CDAtruststore.jks”。 然而当我打电话时 securityProps.setProperty("javax.net.ssl.keyStore","CDAkeystore.jks"); 我收到系统找不到请求的文件错误。 调用此方法的类文件位于通常包排列中的同一个 jar 内。

jar文件如下:

com ..... (a lot more class files)
org ..... (lots of class files)
META-INF
CDAtruststore.jks
CDAkeystore.jks

这怎么这么难?!!

----------已添加信息------n

由于使用路径的对象是开源的,我找到了他们用来加载文件的例程。它是:

InputStream keystoreInputStream = preBufferInputStream(new FileInputStream(keyStoreName));

根据 FileInputStream(String name) 的文档,它是

通过打开到实际文件的连接来创建 FileInputStream,该文件由文件系统中的路径名“name”命名。那么这条路径应该如何表达呢?

最佳答案

使用YourClass.class.getResourceAsStream()this.getClass().getResourceAsStream()。如果您处于多个类加载器环境中,您也可以使用类加载器。

关于java - 如何从 jar 'within' 访问 jar 内的非类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13587578/

相关文章:

java - Spring Boot @RestController没有响应

java - 是否将int初始化为0?

java - 无法为 Hadoop 生成 jar 文件

java - Eclipse android项目不生成jar

java - 使用 testng 运行可运行 jar 的 FileNotFoundException

java - 在没有用户交互的情况下发送电子邮件 - Android Studio

java - 类型不匹配错误(Scala)

java - 实例化一个接受泛型集合的对象

android 无法从外部 jar 中找到类

java - Google Cloud 端点未在端点列表中创建 API