2017-12-03 148 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