java - 在 Class.forName 在 j2me 中混淆时得到 ClassNotFoundException

标签 java java-me obfuscation

我能够运行下面的示例代码

//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/

相关文章:

java - Hibernate @Filter 枚举集合

java - Java中的父类(super class)和子类

java - 在科威特获取选定的单选按钮

exception - 有没有办法在 Java ME 中打印堆栈跟踪到屏幕?

java - 我如何保存、编辑、删除和搜索 MIDLET 应用程序?

.net - (为什么)我应该使用混淆?

python - 如何加密python源代码?

java - 将列表中的重复数据与输入数据进行比较

java - 无法在我的图片上画出三角形

c - 混淆基于 C 的二进制文件以避免反编译