fabricemarcelin
fabricemarcelin

Reputation: 1759

Convert .class to .java

I have some .class files that I need to convert to .java so I did:

javap -c ClassName.class

and all the time I have the same error

ERROR:Could not find ClassName.class

Do you guys have any idea of what might be the cause? I did man javap and as far as I know, the syntax is correct. If there is another way to convert it to a .java file, I am more than willing to try.

Upvotes: 41

Views: 338259

Answers (5)

Shiva
Shiva

Reputation: 31

Step 1: If your class file is inside a jar, rename the .jar extension to .zip and extract the zip folder Step 2: Using the below online decompiler, upload your .class file and read the contents http://www.javadecompilers.com/

Upvotes: 0

Renato Espinoza
Renato Espinoza

Reputation: 59

I used the http://www.javadecompilers.com but in some classes it gives you the message "could not load this classes..."

INSTEAD download Android Studio, navigate to the folder containing the java class file and double click it. The code will show in the right pane and I guess you can copy it an save it as a java file from there

Upvotes: 0

aioobe
aioobe

Reputation: 421220

Invoking javap to read the bytecode

The javap command takes class-names without the .class extension. Try

javap -c ClassName

Converting .class files back to .java files

javap will however not give you the implementations of the methods in java-syntax. It will at most give it to you in JVM bytecode format.

To actually decompile (i.e., do the reverse of javac) you will have to use proper decompiler. See for instance the following related question:

Upvotes: 52

user2116624
user2116624

Reputation: 9

This is for Mac users:

first of all you have to clarify where the class file is... so for example, in 'Terminal' (A Mac Application) you would type:

cd

then wherever you file is e.g:

cd /Users/CollarBlast/Desktop/JavaFiles/

then you would hit enter. After that you would do the command. e.g:

cd /Users/CollarBlast/Desktop/JavaFiles/ (then i would press enter...)

Then i would type the command:

javap -c JavaTestClassFile.class (then i would press enter again...)

and hopefully it should work!

Upvotes: -1

duffymo
duffymo

Reputation: 308998

I'm guessing that either the class name is wrong - be sure to use the fully-resolved class name, with all packages - or it's not in the CLASSPATH so javap can't find it.

Upvotes: 1

Related Questions