我能够运行下面的示例代码
//main class
String a="Menu";
Object o = Class.forName("org.test."+a).newInstance();
//Menu class
public class Menu()
{
public Menu()
{
System.out.println("con called");
}
}
它运行良好,但是当我混淆代码时,我得到了一个 no ClassNotFoundException。
我正在使用 netbean 6.9.1 。在附加混淆设置中,我添加了 -keepnames class org.test.Menu。但仍然没有工作。有什么解决办法吗?
最佳答案
微不足道的原因:混淆器将 org.test.Menu
的名称更改为其他名称(包名称更改和/或类名称更改)。并且混淆器无法“重构”类,以便其他类文件中基于字符串的类名也被更改。
如果是这种情况,请告诉混淆器不要触及 org.test
包(保留该名称并且不要混淆其中类的名称)。
关于java - 在 Class.forName 在 j2me 中混淆时得到 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5105107/