Convert File Object into Class Object

A

Aned

is there any way to convert a java object of type File to type Class?
my problem is that want to scan a directory and find files that ends
with ".class" and treat them as classes. but the problem is that I
only can retrive the files from a directory as File objects. I don't
know if that is possible to tell my tool that if it finds a file with
the extension ".class" then convert it to a Class object.

many thanx
 
G

Gordon Beaton

is there any way to convert a java object of type File to type Class?

That's what ClassLoaders do, but loadClass() maps from classname (not
filename) to Class. That doesn't prevent you from writing your own
though.

/gordon

--
 
R

Roedy Green

is there any way to convert a java object of type File to type Class?
my problem is that want to scan a directory and find files that ends
with ".class" and treat them as classes. but the problem is that I
only can retrive the files from a directory as File objects. I don't
know if that is possible to tell my tool that if it finds a file with
the extension ".class" then convert it to a Class object.

I suspect there are a number of fundamentals you have missed..

1. a File object is just a file name description. It need not be
associated with an actual file. You can create them from Strings with
the File constructor. You can get a list of all the files in a
directory with File.list. You can filter them in various ways so you
just get the *.class or *.txt etc. by writing a FilenameFilter and
using that with File.list. See http://mindprod.com/jgloss/file.html
for details.

It is highly unusual for newbies to do anything at all directly with
*.class files. You just use classes and the JVM finds the associated
*.class file, loads it and converts it to machine code, and does the
static init.

However it is possible do take control over class loading (convert
*.class file to a Class object) either using Class.forName or by
writing a ClassLoader. These are relatively advanced things to do. See
http://mindprod.com/jgloss/classforname.html
http://mindprod.com/jgloss/classloader.html

However, a class file is just a mess of bytes, just like any other
file, so you can read it just as you can any other file. You might
use DataInputStream. See http://mindprod.com/applet/fileio.html
for crude experimenting.
See http://mindprod.com/jgloss/bcel.html if you want to read and
analyse the class file byte for byte.

If the class file is inside a zip, you can read it as a resource.
See http://mindprod.com/jgloss/resource.html
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,566
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top