I modified the byte-code of a third party Java desktop application's .class
file (and repacked the .jar
), only to see that during runtime, my change made no difference, unless my change caused a crash somehow. The most simple experiment I did was to use a hex editor and simply replace a letter in a text string in the .class
file. Runtime (of course, after restarting the Java application), the text was still the original text.
Here's an example of the original byte-code:
ldc "Some text."
Using a hex editor, I changed the string, and looked again in the byte-code editor:
ldc "Xome text."
The decompiled code also shows the modified string. There are no more references to the original string in the .class
file. Despite this change, the displayed text at runtime is "Some text." rather than "Xome text.".
Is there anything I need to take into consideration, e.g. some sort of cache (outside the scope of the application) that must be cleared? I tried to delete the "Temporary Internet Files" in the Java console, to no avail.
Thank you for any assistance you can provide! :)
Removed: The decompiled code and modified files for the real-world application I was experimenting on, due to their questionable nature (didn't really help anyone anyway).
.class
file. Check how many.class
files are within the jar..class
file. What you are editing is probably something else.