我写了一些代码,创建java文件,然后使用ClassLoader
从中创建实例。我的问题是,如果我在写完文件后不进入睡眠状态,ClassLoader
会抛出ClassNotFoundException
。
所以,我需要一种方法,让线程睡眠,直到文件完成所有文件的写入。
类似于:
File javaFile = new File(serverPath + pkgname + "/" + className + ".java")
if (javaFile.getParentFile().exists() || javaFile.getParentFile().mkdirs()) {
Writer writer = null;
writer = new FileWriter(javaFile);
writer.write(sb.toString());
writer.flush();
writer.close();
Method method = Class.forName(pkgname + "." + className).getMethod("main", String[].class);
String[] params = new String[0]; // init params accordingly
method.invoke(null, (Object) params);
}
问题是编译器不会在生成路径中生成.class文件,因此程序会等待IDE的"自动编译"执行。