@SuppressWarnings("resource")
	public Class<?>[] getClassesFromThisJar(Object object)
    {
        final List<Class<?>> classes = new ArrayList<Class<?>>();
        ClassLoader classLoader = null;
        URI uri = null;
        try
        {
            uri = object.getClass().getProtectionDomain().getCodeSource().getLocation().toURI();
            classLoader = new URLClassLoader(new URL[]{uri.toURL()}, ClassEnumerator.class.getClassLoader());
        }
        catch (URISyntaxException e)
        {
            e.printStackTrace();
        }
        catch (MalformedURLException e)
        {
            e.printStackTrace();
        }
        if (uri == null)
        {
            throw new RuntimeException(
                    "No uri for " + this.getClass().getProtectionDomain().getCodeSource().getLocation());
        }
        if(classLoader == null)
        {
            throw new RuntimeException(
                    "No classLoader for " + this.getClass().getProtectionDomain().getCodeSource().getLocation());
        }
        File file = new File(uri);
        classes.addAll(getClassesFromLocation(file));
        return classes.toArray(new Class[classes.size()]);
    }