首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >更新Jar中已经编译成.class文件的Java文件

更新Jar中已经编译成.class文件的Java文件
EN

Stack Overflow用户
提问于 2018-08-25 21:10:23
回答 1查看 52关注 0票数 0

我有一个Jar文件,它使用Java1.5语法来解析Java代码。编写它的人使用了Java.gJavaTreeParser.g和ANTLR来生成这五个文件:Java.tokensJavaLexer.javaJavaParser.javaJavaTreeParser.javaJavaTreeParser.tokens。这些是在应用程序中执行的文件。

现在,我想用我使用支持Java 1.8版本的Java语法生成的文件来更新这五个文件(该语法由同一家公司开发,因此格式遵循相同的模式)。

我使用命令java -jar antlr-complete-3.5.2.jar Java.g JavaTreeParser.g,它生成了这五个文件。

现在我想用这些文件更新Jar。我想过使用7-zip来做这件事,但当我打开这五个文件所在的文件夹时,JavaLexer.javaJavaParser.javaJavaTreeParser.java被“转换”成一堆.class文件:

因此,我的问题是:既然Jar中的文件已经编译成.class文件,我如何替换Jar中的这些文件?

EN

回答 1

Stack Overflow用户

发布于 2018-08-26 01:03:56

您必须手动编译生成的.java-Files。如果代码有您无法提供的任何其他依赖项(例如,因为原始jar中没有提供这些依赖项),请尝试创建在编译时满足这些依赖项的伪类。然后,您可以使用7-zip (例如)手动更新您的JAR文件或者使用以下命令:

代码语言:javascript
复制
$ jar uf <JAR-File> <files-to-update...>

例如:

代码语言:javascript
复制
$ jar uf myjar.jar Java.tokens JavaLever.class JavaParser.class JavaTreeParser.class JavaTreeParser.tokens
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52017648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档