【问题标题】:How to correctly patch Java class in a JAR file?如何正确修补 JAR 文件中的 Java 类?
【发布时间】:2012-01-23 12:14:17
【问题描述】:

我需要修补 JA 文件中的一个类,该类位于格式为 pack1.pack2.pack3.com 的包中。所以类的全称是:

pack1.pack2.pack3.com.classtopatch

我的应用程序中有一个文件夹:

c:/app/patches

我应该简单地将类复制到 c:/app/patches/classtopath.class 文件还是我 需要创建整个文件夹树,如:

c:/app/patches/pack1/pack2/pack3/com 

并在 pack1/pack2/pack3/com 中放入 classtopath.clas ? 谢谢。

【问题讨论】:

    标签: java file path jar classpath


    【解决方案1】:

    是的,您需要创建目录结构以匹配您的包名称。

    创建c:/app/patches/pack1/pack2/pack3/com并将classtopath.class放入其中。

    【讨论】:

      【解决方案2】:

      你的问题不是很清楚,但如果你在文件系统上有类文件,那么它们应该在适当的包结构中。

      如果您将其打包到 jar 文件中,那么 jar 文件本身可以在任何地方,但包结构应该存在于 jar 文件中。

      【讨论】:

      • 类加载器在类路径中查找文件。在文档中,.class 文件的类路径以 / 结尾。所以我的问题 - 只需要复制以替换 1 个文件 .class 或创建与包名称相对应的所有文件夹树。
      • @user710818:您需要复制树 - 您必须保留包结构。目前尚不清楚您的问题与 jar 文件有什么关系......
      • 我需要在 jar 中替换 1 个类。
      • @user710818 - 我们知道!请注意乔恩在说什么。您的问题不清楚的是您要替换的类的完全限定的类名那个名字决定了你必须把替换类放在 JAR 文件中的什么位置。
      • @user710818:那么为什么不编辑 jar 文件本身的内容,而不是在类路径中放置一个额外的类呢?
      猜你喜欢
      • 2012-02-16
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      相关资源
      最近更新 更多