我目前正在处理的是包含可执行文件.jar的Windows .exe。我试过通过各种.exe和.jar反编译器运行它无济于事。我的问题是,如何在被驱逐到.exe之前的状态下获取.jar?
请注意,我不是试图将程序从C ++或C#转换为java,而是将.jar打包成.exe并重新转换为原始.jar。
答案 0 :(得分:0)
在不知道有关如何将其打包到exe中的任何信息的情况下,一种方法是替换rt.jar中的核心ClassLoader
并将数据写入其defineClass
方法中的文件。这样,无论何时加载类,它们都将被写入相应的文件。
请注意,这是一个黑客,并有很多陷阱。举一点,它不会在jar文件中包含其他数据,例如资源。你最好的选择是找出像@HovercraftFullOfEels提到的包装方式。
OpenJDK java.lang.ClassLoader source