Click here to Skip to main content
12,755,095 members (37,063 online)
Rate this:
Please Sign up or sign in to vote.
See more: Java reflection

I'd like to get all the methods from a file (.text or .java), but I don't know the file's name yet (the user can choose it with jFileChooser). So I don't know the class's name. I have this code:
    import java.lang.reflect.Method;
    import javax.swing.JFileChooser;
    public class Test {
       public static void main(String[] args) throws Throwable {
            JFileChooser fc = new JFileChooser();
            File f = null;
            if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
                f = fc.getSelectedFile();
            int errorCode = String[]{
                        "-classpath", "bin",
                        "-d", "../Tmp",
            System.out.println("errorCode:" + errorCode);
            File classesDir = new File("../Tmp");
            ClassLoader parentLoader = Test.class.getClassLoader();
            URLClassLoader loader1 = new URLClassLoader(
                    new URL[]{classesDir.toURL()}, parentLoader);
            BufferedReader br = new BufferedReader(new FileReader(f));
            String load = "";
            while ((load = br.readLine()) != null) {
                if (load.startsWith("package")) {
                    load = load.replaceAll("package", "") + "." + f.getName().substring(0, f.getName().indexOf("."));
                    load = load.replace(";", "").trim();
            Class cls1 = loader1.loadClass(load);
            Method[] methods = cls1.getDeclaredMethods();
            for (Method m : methods) {      

It works, if the class doesn't contains "extends", or uses another class's methods, but if it do, I get errors.
What should I do to fix these problems? I think it has to do something with "classpath" and "bin"
Posted 10-Nov-12 14:15pm
Sergey Alexandrovich Kryukov 10-Nov-12 22:07pm
Errors? You need to tell us exact error messages; in what line, etc.
AllainLG 11-Nov-12 6:26am
If the file contains "extends":
<pre lang="java">error: cannot find symbol
public class RefactorMuveletek extends MasikOsztaly{</pre>

If the input's class is connected to another class:
<pre lang="java">
Exception in thread "main" java.lang.ClassNotFoundException: csomag.eolvasottOsztalyNev

Exception while removing reference: java.lang.InterruptedException

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

    Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web02 | 2.8.170217.1 | Last Updated 10 Nov 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100