簡體   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