0

我正在尝试从磁盘上的某个位置复制一个包含类(包“test”中的 MyTestClass)的 .java 文件。我想获取该文件包含的类。也许我的代码会有用。这是我的代码:

File generatedFile = new File( DIR_CONTAINING_FILE + "/" + className + ".java" );
FileUtils.copyFileToDirectory( generatedFile, COPY_FILE_DIR );
Class cl = Class.forName( "test.MyTestClass" );

复制文件工作正常。它显示了它必须在哪里。

当我手动将文件复制到 COPY_FILE_DIR 然后启动程序时,它会工作,它会找到我的班级。但是当我在没有先复制文件的情况下启动我的程序时(我的意思是当我让它对我的程序执行时)我得到了 ClassNotFoundException。当我刷新目录时,有我的文件,所以它已被完美复制。

在这一刻,我可以再次启动我的程序并且......魔术!它会找到我的课!看起来我需要从 java 刷新目录或做其他事情。我不知道该怎么做。任何帮助将不胜感激。

4

1 回答 1

1

看来您必须熟悉JavaCompilerAPI 才能做到这一点。在哪里存储文件并不重要.java——它们必须先编译为字节码,然后才能尝试在运行时中使用它们。

于 2013-10-08T14:04:38.780 回答