从.war文件中获取我的java源代码?

时间:2011-10-05 13:33:07

标签: java file netbeans war

我最近丢失了当时正在处理的项目的netbeans项目文件夹。然而,在我工作的公司的服务器上某处,我部署了它。这意味着我(希望)仍然可以获得.war文件。

是否有可能然后“解压缩”.war并获取我当时正在处理的.java源文件?

提前致谢!

6 个答案:

答案 0 :(得分:9)

如果.java源不在WAR中(并且它们不应该是),则必须使用JAD等工具对其进行反编译。

这是设置版本控制系统的好时机,例如Subversion或Git或Mercurial,所以这种情况再也不会发生在你身上了。养成使用源代码管理的习惯,即使您是开发该项目的唯一开发人员。

答案 1 :(得分:2)

您只能从战争中获取* .class文件(将战争重命名为zip并使用解压缩工具)。

然后你可以反编译它们。

请参阅此related question for some suggestions

答案 2 :(得分:2)

简短回答:不。

稍微长一点的回答:寻找Java decompilers,但他们不会给你你的Netbeans项目文件夹。

答案 3 :(得分:0)

假设您在创建战争时导出了源文件,则可以获得它。另外,JAD是你唯一的希望,也不能完全依赖它。

答案 4 :(得分:0)

可以解压缩war文件,只获取类文件和其他属性文件。然后使用Java反编译器查看源代码,它工作得很好(不推荐)。

此外,您可以在没有JD的情况下更改属性文件,只需更改属性文件并再次压缩到war文件即可。它将起作用。

但我建议您在SVN或TFS中维护源代码,或者在本地系统中随时保留版本号的多个副本。

答案 5 :(得分:0)

在Eclipse中,您可以导入W​​ar,它将创建一个新项目并在项目结构中设置资源。如果您的战争保存了源Java文件,则该项目将合并您的源文件。如果不是,则软件包将为空,您将不得不使用jad或其他反编译器将类从字节码手动反编译为Java文件。