[英]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.