Java 如何从.jar文件中提取类?
我有.jar文件。我试着运行命令jar xf my.jar,但没有给出任何结果。我尝试使用JDGUI,但它给了我以下消息:无效的输入文件“/home/hey/Desktop/my.jar”Java 如何从.jar文件中提取类?,java,jar,Java,Jar,我有.jar文件。我试着运行命令jar xf my.jar,但没有给出任何结果。我尝试使用JDGUI,但它给了我以下消息:无效的输入文件“/home/hey/Desktop/my.jar” 这是否意味着我无法从这个.jar文件中提取类?您可以使用winrar打开jar文件,这将显示其中的所有类文件,从那里,您可以将它们全部拖到JD-GUI中并进行反编译。如果您希望从jar文件中提取文件,请使用以下命令: jarxf jar文件名存档文件 x选项表示我们希望提取文件,f选项表示从jar文件中提取文
这是否意味着我无法从这个.jar文件中提取类?您可以使用winrar打开jar文件,这将显示其中的所有类文件,从那里,您可以将它们全部拖到JD-GUI中并进行反编译。如果您希望从jar文件中提取文件,请使用以下命令:
jarxf jar文件名存档文件
x
选项表示我们希望提取文件,f
选项表示从jar文件中提取文件,jar文件名
是要提取的jar文件的文件名,存档文件
是要提取的文件我们也可以通过不指定要提取的文件来提取所有文件:
jar xf project.jar
注意:如果无法访问,请按照@Legend告诉的那样,使用WinRaR打开它,检查它是否是正确的
.jar
或.zip
文件。如果不是用winrar打开,linux用户的.jar/.zip
中可能会出现问题
unzip your.jar
您是如何创建.jar文件的 我只是在MacOSX上使用了Dex2Jar-
sudo sh ~/Downloads/dex2jar-2.0/d2j-dex2jar.sh ~/mobile/pjr.mob.android/obj/Debug/android/bin/classes.dex --force
结果文件有权限问题,所以当我用JDGUI打开它时,它给出了上面提到的“无效输入文件加载程序:”错误
如果你做了一个-
sudo chmod +xr ~/Downloads/dex2jar-2.0/classes-dex2jar.jar
然后您可以在JD GUI中打开它。WickedW的答案是正确的
sudo chmod +xr *.jar
然后您可以使用jd gui打开jarArchive:/home/hey/Desktop/my.jar[/home/hey/Desktop/my.jar]未找到中心目录签名的结尾。此文件不是zipfile,或者它构成多部分存档的一个磁盘。在后一种情况下,将在此存档的最后一个磁盘上找到中心目录和zipfile注释。注意:/home/hey/Desktop/my.jar可能是一个普通的可执行文件,而不是存档zipinfo:在/home/hey/Desktop/my.jar或/home/hey/Desktop/my.jar.zip中找不到zipfile目录,并且找不到/home/hey/Desktop/my.jar.zip,句号。右键单击jar并从那里选择“打开…”,您可以从程序文件中选择Winrar。我试着运行命令jar-xvf tools.jar,它可以工作。我认为您的my.jar已损坏或未以jar文件格式存储。我认为该文件夹中没有名为“classes-dex2jar.jar”的文件。你是怎么得到的?看看上面的命令输出,当你在你的机器上运行它时,我的.dex源文件是“classes.dex”,它会自动变成./classes-dex2jar.jar(在你运行上面命令的目录中)。