title: Getting methods from a chosen file's class in java
body: <p>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:</p>
  
  <pre><code>import java.io.BufferedReader;
  import java.io.File;
  import java.io.FileReader;
  import java.lang.reflect.Method;
  import java.net.URL;
  import java.net.URLClassLoader;
  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 = com.sun.tools.javac.Main.compile(new String[]{
                      "-classpath", "bin",
                      "-d", "../Tmp",
                      f.getAbsolutePath()});
  
  
          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();
                  break;
              }
          }
          Class cls1 = loader1.loadClass(load);
          Method[] methods = cls1.getDeclaredMethods();
          for (Method m : methods) {      
              System.out.println(m.getName());
          }
      }
  }
  </code></pre>
  
  <p>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"</p>