繁体   English   中英

获取在运行时创建的类

[英]Get class created at runtime

我正在尝试从磁盘上的某个位置复制一个包含类(包“ 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刷新目录或执行其他操作。我不知道该怎么办。 任何帮助将不胜感激。

看来您必须熟悉JavaCompiler API才能执行此操作。 存储.java文件的位置并不是很重要-必须先将它们编译为字节码,然后才能尝试在运行时内部使用它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM