如何获得某package下所有class的名字?谢谢!

解决方案 »

  1.   

    public static void readFolder(String path){
            File io = new File(path);
            if (io.isDirectory()) {
             System.out.println(path + ":");
            File[] file = io.listFiles();
            for (int i = 0; i < file.length; i++) {
             readFolder(file[i].getPath());
            }
            }
            else {
             System.out.println("\t" + io.getPath());
            }
        }
      

  2.   

    谢谢,但是这种文件式的读取方式对于一个jar文件的解析就不是很合适了吧!
      

  3.   

    可以参考一下java.lang.Package对象
      

  4.   

    Class c = null;
    c = Class.forName(args[0]);
    ackage p;p = c.getPackage();
    if (p != null)System.out.println("package "+p.getName()+";");
      

  5.   

    请看清我的需求我有个jar文件,其中有aaa.bbb这个package,我想获取aaa.bbb的这个package下的所有class名
      

  6.   

    用这个修改一下应该可以的.
        public void DownloadReports() throws IOException{
    // 把包名字转换成绝对路径
            String name = new String("myapp/report");
            if (!name.startsWith("/")) {
                name = "/" + name;
            }
            name.replaceAll("%20", " ");
            URL url = reports.class.getResource(name);
            //System.out.println(url.getFile().replaceAll("%20", " "));
            File directory = new File(url.getPath().substring(1).replaceAll("%20", " "));
            if (directory.exists()) {
                String[] files = directory.list();
                for (int i = 0; i < files.length; i++) {
                    String classname = files[i];
                    if(files[i].endsWith(".jasper"))
                    {
                        DownloadReports(files[i]);
                    }
                    //System.out.println(classname);
                }
            }
        }