Java 如何加载和使用一个以上的.class文件?

Java 如何加载和使用一个以上的.class文件?,java,Java,我在这个文件夹中有一个文件夹我有4.class文件。我想在我的主程序中加载这个文件并调用方法。对于一个.class文件,我喜欢这样: File file = new File("/home/saeed/NetBeansProjects/java-test/build/classes"); URI uri = file.toURI(); URL[] urls = new URL[]{uri.toURL()}; ClassLoader classLoader = new URLClassLoad

我在这个文件夹中有一个文件夹我有4.class文件。我想在我的主程序中加载这个文件并调用方法。对于一个.class文件,我喜欢这样:

File file = new File("/home/saeed/NetBeansProjects/java-test/build/classes");

URI uri = file.toURI();
URL[] urls = new URL[]{uri.toURL()};

ClassLoader classLoader = new URLClassLoader(urls);

Class clazz = classLoader.loadClass("com.test.NewClass");
Object obj = clazz.newInstance();

System.out.println(""+obj.getClass().
        getMethod("echo",String.class).invoke(obj, "Saeed"));
对于调用我喜欢的方法:

File file = new File("/home/saeed/NetBeansProjects/java-test/build/classes");

URI uri = file.toURI();
URL[] urls = new URL[]{uri.toURL()};

ClassLoader classLoader = new URLClassLoader(urls);

Class clazz = classLoader.loadClass("com.test.NewClass");
Object obj = clazz.newInstance();

System.out.println(""+obj.getClass().
        getMethod("echo",String.class).invoke(obj, "Saeed"));
现在文件夹中有一个以上的.class。如何加载和调用它们的方法? 有人能帮我吗?

你可以使用,下面是一个例子:

Path startDir = Paths.get("C:\\home");

String pattern = "*.class";

FileSystem fs = FileSystems.getDefault();
final PathMatcher matcher = fs.getPathMatcher("glob:" + pattern);

FileVisitor<Path> matcherVisitor = new SimpleFileVisitor<Path>() {
    @Override
    public FileVisitResult visitFile(Path file, BasicFileAttributes attribs) {
        Path name = file.getFileName();
        if (matcher.matches(name)) {
            // Found a .class file 
            System.out.print(String.format("Found matched file: '%s'.%n", file));
        }
        return FileVisitResult.CONTINUE;
    }
};

嗯…同样的事情再做三次?或者更好的是,将该目录放在类路径中并正常使用它们?这里的问题到底是什么?如何从文件夹加载4.class文件?这个问题没有任何意义。你到底想做什么?如果您只是试图以正常的方式使用类文件,那么根本不直接使用类加载器。请看:@marzie,我们不明白您为什么使用反射加载这些类?为什么不把文件夹放在类路径中?如果你坚持使用反射,很明显的答案是用clazz1 clazz2 etcI复制paste loadClass坚持使用反射。我知道如何加载一个.class文件,但在我的文件夹中有4.class文件。我如何加载所有这些文件?