Java Decompiler

I have decompiled a java applet (jar) file.  But the results are messed up.  
All the class files are named like a.java, ab.java, ac.java, etc.  The variables inside the java files
are like
        _fld0AA2 = new float[_fld0A9F.length - 1];
        _fld0AA3 = new float[10];
        _fld0AA4 = new float[10];
        _fld0AA5 = new float[160];
        _fld0AA6 = new float[3];
        _fld0AA8 = new float[10];

and the methods are like:
public void _mth066A()
public int _mth064B(byte abyte0[], short aword0[], int i, double d)

I have used
DJ Java Decompiler v.3.11.11.95 and jd-gui-0.3.1.windows and they both display the same results.

I need to be able to see what the real variables are because I am getting compiler errors in statements
like:
 
 switch(jk1._fld0B36)
            {
            case 0: // '\0'
            case 7: // '\007'
            case 26: // '\032'
            case 27: // '\033'
            case 28: // '\034'
                obj = new n(rectangle, ri, jk1, null);
                break;

            case 20: // '\024'
                obj = new n(rectangle, ri, jk1, hj1._mth01C1());
                break;

            case 1: // '\001'
            case 8: // '\b'
            case 17: // '\021'
            case 24: // '\030'
                obj = new ifa(rectangle, ri, jk1);
                break;

            case 3: // '\003'
                obj = new cd(rectangle, ri, jk1);
                break;
.......

obj._fld0102 = jk1._fld0B38;

since the compiler looks like it is just randomly naming fields (setters/getters).  This is causing a problem
going through the case statement because each one of those objects should have the same field
name but does not because the decompiler is randomly naming them.  

Does anyone know of a decompiler I could use that would give me the "real" variable and class names.
I am not sure how old this java code is or what version of java it was compiled on.  
justanothercoderAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

afibarraCommented:
It looks like you are trying to decompile an obfuscated code. That's why you are getting "a.java, ab.java, ac.java" files

http://www.informit.com/articles/article.aspx?p=174368
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
cmalakarCommented:
Yes, the code is obfuscated, where all the "real" variable/class names will be updated with some other names.
Which makes it difficult to understand.

>> Does anyone know of a decompiler I could use that would give me the "real" variable and class names

Obfuscated code means.. the names are changed in the class files itself. So, the real variable names does not exist,..
And Now.. no decompiler will get you the exact code.

0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Java

From novice to tech pro — start learning today.