2011-12-09 43 views
2

如何将.jar转换为.war文件格式。基本上我想要读file.jar。但是当我在eclipse中导入时,它显然会导入为.class文件。我想阅读.java格式并阅读代码。将.jar转换为.war

请帮忙

+2

.jar是否包含.java源代码文件?如果是这样,Eclipse应该给你看。您可以通过解压缩来打开jar文件进行检查。如果没有,那么没有消息来源......这和.war有什么关系? – Thilo

+0

如果你的源代码是开源的,或者使用反编译器,你可以从网上下载源代码。 – aishwarya

+3

您的问题的第一句和第二句表明您可能对“war”文件的错误概念。将'jar'转换为'war'不会帮助您查看类的源代码。 – Jesper

回答

1

请记住.jar和.war是不同的文件格式。尽管它们是一组压缩文件,但战争文件有一个standard organization structure。作为一个jar文件,简单地说就是一个标准的压缩档案文件,通常用作打包的二进制档案。你试图做的事情很难实现,并且没有直接的方法来做到这一点。你必须手动完成。

1

正如@Santosh所说,war和jar是相同的压缩(所以你可以将它重命名为jar并使用jar -x来解压缩它),但内部组织是不同的。在我看来,像你只是想捞出java文件,解压缩这样就够了......

mv file.war file.jar 
jar xf file.jar 
1

如果你正在尝试转换jarwar的原因仅仅是因为你希望能够要查看jar中类的源代码,然后尝试将其转换为war不是正确的做法。

一个Java jar(Java ARchive)文件就像一个压缩文件,一个可以包含其他文件的压缩文件。通常它将包含class文件(编译的Java类)。 A war(Web ARchive)与jar文件相同,但具有特定的指定目录结构,使其适合在Java EE应用程序服务器上部署。将jar文件转换为war文件不会自动使您能够在Eclipse中查看类的源代码。

要在Eclipse中查看源代码,您需要分别下载这些源代码。对于许多开源项目,您可以在单独的jar中获得源代码。例如,对于图书馆somelib.jar,您可能会在找到图书馆的网站上找到somelib-sources.jar或类似的东西。

然后,在Eclipse中,右键单击附加到您的项目作为一个依赖的jar文件,并从弹出菜单中选择属性。然后转到“Java源附件”。输入...-sources.jar的位置或包含源代码的目录,然后单击确定。

1

您的陈述意味着您的file.jar不包含Java代码。

在这里,我建议你。

  1. 迥异.jar.war文件格式。它已经在上一个答案。

  2. 如果您想从file.jar中读取代码,实际上您可以先反编译它。有很多易于使用的Java反编译器。我建议你为此使用JD