相关疑难解决方法(0)

为什么Java类加载器找不到我的界面?

在下面的代码中,我使用动态生成一个类sun.tools.javac.Main.我将使用Reflection创建此类的新实例.问题是,我想避免使用Reflection来调用我为这个类定义的方法,所以我创建了一个ProxyInvoker,它引用了我在项目中定义的接口.为了让类加载器看到这一点,我将类路径添加到我的类加载器的Executable接口.在"编译"步骤中,我仍然收到一条错误,指出我的界面未找到.

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;

public class MyClassGenerator {

    static final String generatedClassName = "TestHello_" + System.currentTimeMillis();
    static final String javaFileName = generatedClassName + ".java";

    static URLClassLoader classLoader;

    public static void main(final String args[])
            throws MalformedURLException {
        final ProxyInvoker proxy = new ProxyInvoker();
        generateClass();
        loadExecutableInterface();
        if (compileClass()) {
            System.out.println("Running " + generatedClassName + ":\n\n");
            final Executable ex = createExecutable();
            ex.execute();
        }
        else {
            System.out.println(javaFileName + " is bad.");
        }
    } …
Run Code Online (Sandbox Code Playgroud)

java classloader

2
推荐指数
1
解决办法
3655
查看次数

标签 统计

classloader ×1

java ×1