Click here to Skip to main content
11,923,958 members (65,230 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.151125.3 | Last Updated 10 Nov 2012
Copyright © CodeProject, 1999-2015
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