提取后如何重新打包* .class和lib / * .jar?

时间:2017-07-18 12:07:40

标签: java hadoop jar

我是处理类文件,jar等的新手。

通常,我只是下载一个jar文件并用它来运行hadoop job。

现在,我需要从jar中提取内容并修改一些文件并将它们重新打包到一个新的jar中。

我从jar文件中提取文件(* .class,lib / * .jar):

jar xf ./ABC.jar

然后,我将提取的文件放在:

./ABC/*

我试图以这种方式将它们重新组合在一起:

jar cvf New_ABC.jar ./META-INF/MANIFEST.MF libs/*.jar -C ABC .

当我使用New_ABC.jar运行hadoop作业时,我得到以下异常:

Exception in thread "main" java.long.ClassNotFoundException: BLAH.blah
   at java.net.URLClassLoader.findClass
   at ...

我的手术有什么问题?如何使用New_ABC.jar,就好像它与ABC.jar一样?

谢谢,感谢您的帮助

以下是文件./META-INF/MANIFEST.MF

的内容
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: Anonymous
Created-By: Apache Maven 3.3.3
Build-Jdk: 1.8.0_66

0 个答案:

没有答案