private void loadClassFiles(String dir, String pack) {
        urls = new Vector<URL>();
        File file = new File(dir);
        if (!file.exists())
            return;
        File files[] = file.listFiles();
        for (File f1:files){
            if (f1.getName().endsWith(".zip")){
                unZip(f1.getAbsolutePath(), f1.getParentFile().getAbsolutePath());
            }
        }
        files = file.listFiles();
        for (File file1 : files)
            if (file1.isDirectory())
                loadClassFiles(dir + "/" + file1.getName(), pack + "." + file1.getName());
            else if (file1.getName().endsWith(".class"))
                try {
                    String name;
                    if (pack.length() > 0)
                        name = pack.substring(1) + ".";
                    else
                        name = "";
                    name = name + file1.getName().substring(0, file1.getName().length() - 6);
                    byte data[] = new byte[(int) file1.length()];
                    FileInputStream fis = new FileInputStream(file1);
                    fis.read(data);
                    classesData.put(name, data);
                    urls.add(file1.toURL());
                }
                catch (FileNotFoundException e) {
                    ExceptionHandler.catchException(e);
//                    ExceptionHandler.handleException(e);
                }
                catch (IOException e) {
                    ExceptionHandler.catchException(e);
//                    ExceptionHandler.handleException(e);
                }
            else {
                unknownFiles.add(file1);
            }

    }