2017-12-03 122 views
0

我正在玩Android上的思考。我已經在設備上保存的JAR文件,我想從這個JAR獲取類,但它不工作,我得到異常:類沒有發現異常使用反射類保存在設備上的Android

java.lang.ClassNotFoundException: Main.class 

我的代碼:

File classFile = new File(getExternalFilesDir(null) + File.separator); 
URLClassLoader classLoader = new URLClassLoader(new URL[] { classFile.toURI().toURL() }); 
Class classToInvestigate = classLoader.loadClass("Main.class"); 

而且我試着保存了Main.class文件,但我仍然收到錯誤。有什麼我失蹤? 謝謝。

回答

0

你加載一個類的方法是如下:

Class<?> stringBuilder = ClassLoader.getSystemClassLoader().loadClass("java.lang.StringBuilder"); 

另一種方法:

Class.forName("java.lang.StringBuilder"); 

更新:看看https://stackoverflow.com/a/6860579/1715121

乘坐看看Main類的FQCN。

+0

仍然無法正常工作。我只有使用包com.helloworld和Main類纔有HelloWorld.jar。我已將代碼更改爲'.loadClass(「com.helloworld.Main」);'但是同樣的錯誤。 – VladoS24

+0

回答更新:'Class.forName(「java.lang.StringBuilder」);' – Ele

+0

但是這個JAR保存在設備上,我需要首先獲得這個JAR與他的位置,然後以某種方式尋找名稱,我錯了嗎? – VladoS24