【问题标题】:Loading a .class file into a jar?将 .class 文件加载到 jar 中?
【发布时间】:2013-04-15 09:18:03
【问题描述】:

是否可以执行以下任何操作?:

  1. 从给定的 .class 文件创建一个新的 JAR 文件?
  2. 将本地 .class 文件插入现有 JAR?

似乎我需要以某种方式将 .class 读入 JarEntry,但这似乎不适用于任何现有的 JarEntry 构造函数。是否有任何解决方法或替代方法来完成此操作?

提前致谢

编辑:寻找编程解决方案

【问题讨论】:

  • 您要手动执行此操作还是为此编写程序?

标签: java class jar zip


【解决方案1】:

jar 文件只是其中包含类的 zip 文件。当您的机器上安装了 java 后,您可以使用 jar 命令创建 jar 文件。

如果您使用 java IDE,它应该可以选择从某些类创建 jar 文件。

但大多数人使用构建工具来完成此任务。众所周知且广泛使用的 java 构建工具是 Apache AntApache Maven。如果您是 Java 新手并且它是工具,那么开始使用 Apache Ant 可能会更好。

【讨论】:

  • 感谢您的回复,也很抱歉不清楚,但我正在寻找一种在java代码中执行此操作的方法;可以通过从类文件中获取 JarEntry 以某种方式使用 JarOutputStream
【解决方案2】:

使用 .class 文件,您可以使用 JAD decompiler 提取源代码。然后创建一个您自己的新 JAR 文件,您可以根据需要在其中修改。

【讨论】:

    【解决方案3】:

    我已经编写了一些实用方法来使用 NIO2 文件 API(该库是开源的)将文件添加到 ZIP/JAR 文件中:

    马文:

    <dependency>  
        <groupId>org.softsmithy.lib</groupId>  
        <artifactId>softsmithy-lib-core</artifactId>  
        <version>0.3</version>  
    </dependency>  
    

    教程:

    http://softsmithy.sourceforge.net/lib/current/docs/tutorial/nio-file/index.html

    API:CopyFileVisitor.copy

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多