首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jar文件上使用javap

如何在jar文件上使用javap
EN

Unix & Linux用户
提问于 2021-12-26 13:16:26
回答 2查看 826关注 0票数 0

我是运行debian的破坏者,我有一个真实的老java游戏,我玩的本机openjdk,但我不记得确切的版本。所以我试着用javap找出jar文件是用哪个java版本编译的。

代码语言:javascript
复制
javap -v java-spiele/edna_bricht_aus/Edna.jar 
Error: class not found: java-spiele/edna_bricht_aus/Edna.jar

默认java版本是

代码语言:javascript
复制
java -version
openjdk version "11.0.13" 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.13+8-post-Debian-1deb10u1, mixed mode, sharing)

也许是新的。因此,我安装了openjdk-8从拉伸回购(是的,我知道franken debian),另一次尝试。

代码语言:javascript
复制
/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/javap -v /home/alex/java-spiele/edna_bricht_aus/Edna.jar 
Error: class not found: /home/alex/java-spiele/edna_bricht_aus/Edna.jar

从商业游戏中获取信息是可能的吗?使用openjdk-8,游戏不会运行,它会崩溃。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2021-12-26 13:39:36

javap需要一个类,而不是一个JAR。要拆卸JAR中的类,将JAR添加到类路径并指定类名;例如,使用JSTL而不是游戏:

代码语言:javascript
复制
javap -v -classpath jstl-1.2.jar org.apache.taglibs.standard.tlv.JstlCoreTLV

若要查看JAR中的类,请使用jar tf;将斜杠替换为点,以将路径转换为包。

要想找到构建JAR中所有类的Java版本,最好提取JAR中的类并在它们上运行file

代码语言:javascript
复制
mkdir foo
cd foo
jar xf ../java-spiele/edna_bricht_aus/Edna.jar
find . -name \*.class -exec file {} +
票数 3
EN

Unix & Linux用户

发布于 2022-11-14 02:42:37

您还可以将jar中的类的URL指定为javap,如下所示:

代码语言:javascript
复制
javap -v jar:file:///path/to/MyJar.jar!/mypkg/MyClass.class
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/683958

复制
相关文章

相似问题

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