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

我如何从清单的类路径条目获取jar

訾俊名
2023-03-14
问题内容

我在清单文件的Class-Path条目中有一个带有两个jar的可运行jar:

Class-Path: module1-0.0.1-SNAPSHOT.jar base-0.0.1-SNAPSHOT.jar
Main-Class: test.MySPI

该程序运行良好,并且满足了所引用jar中的所有依赖关系。但是,当我尝试访问类路径时,罐子不存在:

String classpath = System.getProperty("java.class.path");
String[] entries = classpath.split(System.getProperty("path.separator"));
for (String entry : entries) {
    System.out.println("Entry: " + entry);
}

只给

Entry: .\module2-0.0.1-SNAPSHOT.jar

有没有一种方法可以访问实际的类路径,因为很明显,系统会在路径上找到这些jar?


问题答案:

您实际上是否需要JAR文件的位置,还是只需要从它们加载资源?

如果您实际上只是想加载资源,您将对java.lang.ClassLoader,其静态getSystemClassLoader()方法和静态java.lang.Thread.currentThread().getContextClassLoader()方法感兴趣。

如果您想查找它们是什么,因为您想从Jar文件名中读取版本字符串……并且无论如何它们都在您的控制之下……您可能希望使用Package.getPackage("my.package").getImplementationVersion()和组织将所需的值写入组件罐清单。



 类似资料:
  • 问题内容: 我正在使用一些第三方代码,这些代码在给定“ -classpath”命令行参数时不会设置java.class.path,而是仅创建一个类加载器,将命令行中指定的类路径中所有项的所有url添加到类加载器,然后将其设置为上下文类加载器。在我编写的此代码的插件类中,我获得了该类加载器的实例,并且需要以某种方式使用它来获取基础类路径,以便可以在JavaCompiler.getTask(… ),并

  • 问题内容: 我有一个Java项目的标准项目布局: 据我所知,我正在使用Ant正确构建项目。我需要在清单文件中设置class-path属性,以便我的类可以使用所需的库。 以下来自build.xml的相关信息 任何朝着正确方向的推动都值得赞赏。谢谢 问题答案: 查看我的NetBeans生成的构建文件,我在任务中找到了以下代码片段: 因此,换句话说,看起来您只需要向已有的清单任务添加另一个属性即可。 另

  • 问题内容: 有一个URL,如何检索其路径部分? http://www.costo.com/test1/test2 如何获得“ test1 / test2” 问题答案: 您想要这样的东西: 其实那会给你的。您只需要删除第一个即可获得所需的内容: 现在您将进入。

  • 本文向大家介绍Python如何获取文件路径/目录,包括了Python如何获取文件路径/目录的使用技巧和注意事项,需要的朋友参考一下 一、获取文件路径实现 1.1 获取当前文件路径 __file__变量其实有个问题,当文件被是被调用文件时__file__总是文件的绝对路径;但当文件是直接被执行的文件时,__file__并不总是文件的绝对路径,而是你执行该文件时给python传的路径。比如你是pyth

  • 我目前正在尝试使用Apache POI从java中读写excel (xlsx而不是xls)。问题是我不仅需要poi-oo XML jar,还需要依赖关系。我如何创建一个类路径来将所有这些链接在一起? 我目前使用的包括: < li>poi-ooxml-3.10 < li>poi-ooxml-schemas-3.10 < li>dom4j- 1.6.1 < li>xmlbeans-2.3.0 < li

  • 问题内容: 我正在寻找一种从给定的目录中获取所有资源名称的列表的方法,例如。 例如,给定一个路径目录x/y/z包含文件和子目录,应该返回一个包含下列字符串:, 。 它应同时适用于文件系统和jar中的资源。 我知道我可以用和 编写一个简短的代码段,但是我不想重新发明轮子。我的问题是,鉴于现有的公共可用库,最快的实现方法是什么?和堆栈都是可行的。 问题答案: 自定义扫描仪 实施自己的扫描仪。例如: