gpt4 book ai didi

java - 如何将自己的.class 添加到已编译的.jar 文件中?

转载 作者:行者123 更新时间:2023-12-02 07:50:45 25 4
gpt4 key购买 nike

我有一个 .jar,我想向其中添加我自己的 .class 并重新编译。有什么地方我可以做吗?

最佳答案

是的,而且很简单(如果您已经有了 .class 文件 - 则无需重新编译)。

(假设你已经有了.class文件并且只想将其添加到.jar中。如果你没有.class文件,你需要先编写一个.java源文件并将其编译为.class使用javac)

Jar 文件实际上是 zip 文件 - 您可以使用 zip/unzip 来创建和解压它们。

  1. 使用解压程序解压 jar 文件
  2. 将您的类添加到解压目录 (*)
  3. 再次压缩(可能是另一个名称.jar)

(*) 在第 2 步中,您必须将 .class 文件放入正确目录中 - 正确的意思是包名称您的类必须与 .class 文件所在的目录路径相匹配,相对于 .jar 存档根

例如,如果您的 My.class 定义它位于包 com.nicky 中,则必须在 com/nicky/My.class 中找到它 (其中 com 是存档根目录中的一个目录)。如果 My.class 没有包,则它必须位于存档根目录中。

无需重新编译 - Java 在运行时动态链接 - 如果程序的其余部分需要使用类 com.nicky.My,它将成功完成如果类文件位于 .jar 文件中的正确位置。

您使用虚拟机的classpath参数(java -cp a.jar:b.jar:...)来告诉java进程去哪里寻找对于类 - 如果将类打包在单独的 .jar 文件中更有意义..

--编辑1/回复您的评论:如果您要编写新的 .java 文件,则需要首先使用 jdk 附带的 javac 命令行编译器将其编译为 .class。

每个 Java 类都属于一个包,通常在 .java 源文件的第一行中声明。对于 .java 源文件(为了编译成功)和 .class 文件(为了动态加载/运行成功),包名称必须与类的目录路径位置匹配(如上例所示)。

您还可以下载并使用 Java IDE(例如 http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/mars2 )来创建 .class 文件。在 Eclipse 中创建一个新的 Java 项目,编写类源代码,单击“构建”(如果它尚未自动构建),然后使用文件资源管理器从磁盘上项目的“目标”目录中获取 .class 文件.

如果您的新 .java 类依赖于您尝试将其添加到的 .jar 中的类,请使用

javac -cp your.jar com/nicky/My.java

告诉编译器额外的编译时依赖项在哪里。

如果您从 Eclipse 进行编译,则需要配置您的项目依赖于 your.jar:右键单击您的项目 -> 属性 -> Java 构建路径 -> 库 -> 添加 Jars..

关于java - 如何将自己的.class 添加到已编译的.jar 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36923887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com