在Tomcat浏览器中有一个正在Windows上运行的Web应用程序。 应用程序用户将.jar文件的数量作为其逻辑的存储。
当我打开一个jar文件时,我需要修改一个逻辑,我看到一堆.class文件。 (Java编译类,我假设)。当我尝试在文本编辑器中打开.class文件时,我看到一个半可读的乱码。
当我将这个已编译的.class提供给像showmycode.com这样的服务时,我可以看到实际的java代码。 此时我根据需要更改了代码,并希望将更新的.class文件用于应用程序(将其放回jar中)。
我是否必须将.class文件编译为"半可读的乱码",或者我可以把它作为源代码文件放在那里(可能不是,但我想我会问以防万一)。 如果我必须编译带有代码的代码,我可以在不在某个Java IDE中启动项目的情况下执行此操作,只需通过命令行将其编译为.class吗?
答案 0 :(得分:0)
编辑没有源代码的应用程序有两种主要方法。
您发现的第一个是反编译,编辑,重新编译。优点是您不必了解字节码,因为它只是反编译为Java。主要缺点是即使最好的反编译器也不能保证生成可重新编译的代码。如果应用程序完全被混淆了,你可以忘记重新编译。
替代方案是反汇编,编辑,重新组装。我建议Krakatau为此(披露,我写了)。另一种选择是ASM,但它是为程序修改而设计的,而不是手工编辑,而且它很笨拙。
字节码编辑的主要优点是它始终有效,即使应用程序已被混淆。缺点是它显然需要您理解并能够直接在字节码中编程。