当前位置: 首页 > 知识库问答 >
问题:

Rsrc-Class-Path和Class-Path之间的区别

后阳炎
2023-03-14

谁能告诉我Rsrc-class-Path和runnable-jar的清单文件的Class-Path部分之间有什么区别?

现在我认为它们是Eclipse生成的,但我想了解它是如何工作的。

根据Eclipse生成代码的方式,我认为第一个是关于我的应用程序需要的JAR,第二个总是 。但我不知道是哪个文件夹 指的是。


共有1个答案

蒋阳华
2023-03-14
匿名用户

Class-Path属性。这是一个由JAR文件规范定义的标准属性。当您使用java-jar...运行JAR时,它包含了一个相对URL的列表。

这提供了一种将外部JAR(和目录)添加到运行时类路径的方法。这些条目必须是相对的,并且相对于包含主JAR的目录进行解析。(出于安全原因……)

rsrc-class-Path属性是非标准的。这由Eclipse的jars-in-jar启动器使用。典型的清单如下所示:

Manifest-Version: 1.0
Rsrc-Main-Class: com.abc.Master
Main-Class: com.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
Rsrc-Class-Path: ./ lib/xyz.jar

其中com。abc。Master是你的应用程序(real)的主类,lib/xyz。jar是嵌套在此jar中的jar文件的相对URL。。您还将看到JAR包含jarsrcloader的“.class”文件。这就是运行java-jar时的情况。JAR arg1 arg2

  1. 创建JVM
  2. JVM jar加载器打开JAR,读取并解析上面的MANIFEST. MF。
  3. 它加载由Main-Class/
  4. 给出的 JarRsrcLoader
  5. 调用上面的类main方法,传递给它["arg1","arg2"]
  6. JarRsrcLoader检查清单,并提取Rsrc-Class-PathRsrc-Main-Class
  7. 然后JarRsrcLoader创建一个特殊的类加载器,它知道如何读取嵌入在当前JAR中的JAR。这个类加载器的类路径是"./",后面是"lib/xyz.jar",其中这些URL在外部JAR文件中解析。
  8. 然后JarRsrcLoader使用特殊的类加载器加载类com.abc.Master
  9. 然后JarRsrcLoadercom.abc.Master调用main方法,传递包含参数的相同字符串数组。
  10. 最后,应用程序运行。

简而言之,Rsrc类路径JarRsrcLoader类理解的属性,用于构造实际的应用程序类路径。

在这个上下文中,Class-Path:.属性没有真正的用途。运行JarRsrcLoader所需的一切都将在JAR中。

最后,SpringBoot加载机制类似,但它对应用程序的主类使用了不同的非标准属性,并将应用程序的资源(例如JAR)放入主JAR中的特定目录(“/boot-inf”)。

 类似资料:
  • 问题内容: 我对这两个术语感到困惑。 另外,我应该怎么做才能在Spring MVC项目的src文件夹下创建文件?当我使用File对象创建文件时,它将在C:\ SpringSourceTool中创建文件。我猜这是ClassPath对吗? 无论如何,如何获取应用程序的文件夹或根目录? 问题答案: 在 构建路径 是用于构建应用程序。它包含所有源文件和编译应用程序所需的所有Java库。 的 类路径 被用于

  • 2011-12-05 17:41:00.994075 7ffe8b5c3760 librbd: failed to assign a block name for image create error: error 5: Input/output error This usually happens because your OSDs can’t find cls_rbd.so. They sea

  • 有人能告诉我应该在哪里使用吗?应该在哪里使用@Path或? 最近我遇到了一个使用的代码,到目前为止,我一直在使用@path和来实现我的web服务。Webmethod的代码使用的是SOAP Web服务。 它与肥皂或Rest有关吗?或者Java或者J2EE? 我尝试过谷歌搜索,但到目前为止没有成功。

  • 问题内容: 我正在尝试重新构建用于创建依赖于常见的第三方jar文件的Java jar文件的构建技术。(GlazedLists,Apache Commons等) 我一直将它们全部放入{Java JRE dir} / lib / ext中,以便JRE自动看到它们,但这导致了一些问题,例如不记得我需要分发某些jar文件,所以我想学习更明确地说。 所以我将它们全部移到c:\ appl \ java \ c

  • 我在REST WebService工作。我浏览了一些博客,在那里我看到将URL映射到一个方法,他们使用了不同的注释。有些地方使用,有些地方使用。两者有何不同?

  • 问题内容: 和CSS 之间有什么区别?可以使用吗? 我看到不同的开发人员在这两种方式上都这样做,而且由于我是自学成才的,所以我从来没有真正想过。 问题答案: 必须是唯一的,才能应用于许多事物。在CSS中,看起来像和元素看起来像 通常,只要您要引用特定元素,并且在有很多相似的事物时使用。举例来说,常见的元素之类的东西,,。常见元素是或。 但是,您应该了解的最基本的优先级是选择器优先于选择器。如果您有