以编程方式将类添加到现有JAR文件

时间:2012-11-27 00:54:16

标签: java file jar

我获取.jar文件的路径作为我的java应用程序的用户输入。我需要在我的类路径上添加一个类到.jar文件,然后将.jar文件发送到外部服务(通过网络)。其他站点上的服务必须能够从.jar文件中加载类,包括我在应用程序中添加的类。

解决方案应该具有以下属性:

  • 通用:应该适用于任何可以想象的.jar包含用户可以给我的类。
  • 自动:类添加必须由我的java应用程序完成。

要添加到.jar文件的类的名称不会与该JAR中的任何其他类发生冲突。

3 个答案:

答案 0 :(得分:1)

由于jar是常规zip文件,因此您可以使用java.util.zip提供的功能。

答案 1 :(得分:0)

要添加其他人所说的内容,如果您需要在另一端加载JAR,则应该检查http://docs.oracle.com/javase/7/docs/api/java/net/URLClassLoader.html

答案 2 :(得分:0)

我知道你的类路径上有一个类,你想要做的是获取它的bytearray表示,以便将它注入现有的JAR文件。

Hava查看javax.tools包,可用于JDK 1.6及更高版本:

http://docs.oracle.com/javase/6/docs/api/javax/tools/package-summary.html

您可以使用此处可用的机制以编程方式编译代码并序列化字节码。如果没有,ASM也可以提供帮助:http://asm.ow2.org/