我选择了 ProGuard,这是我配置它的选项:
收缩
选项:
- 收缩
保持:
- 应用
- 小程序
同时保持:
- 枚举
- 数据库驱动程序
- Swing UI L&F
混淆
选项:
- 混淆(呃!:P)
- 积极超载
- 使用唯一的类成员名称
- 使用混合大小写的类名
- 扁平化包层次结构
- 重新打包类
保留姓名:
- 本机方法名称
- .class 方法名称
优化
选项:
- 优化
- 积极合并接口
消除:
- [选中所有框]
信息
预验证和定位:
- 预验证
一致性和正确性:
- 注意配置中的潜在错误
- 警告可能的错误输入
- 跳过非公共图书馆班级成员
当我拿起罐子并将其放置为:
启动时出现此小程序错误:
java.lang.RuntimeException:java.lang.NoClassDefFoundError:b 在 sun.plugin2.applet.Plugin2Manager.createApplet(未知来源) 在 sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(未知来源) 在 java.lang.Thread.run(未知来源) 引起:java.lang.NoClassDefFoundError: b 在 java.lang.Class.getDeclaredConstructors0(本机方法) 在 java.lang.Class.privateGetDeclaredConstructors(未知来源) 在 java.lang.Class.getConstructor0(未知来源) 在 java.lang.Class.newInstance0(未知来源) 在 java.lang.Class.newInstance(未知来源) 在 sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source) 在 java.awt.event.InvocationEvent.dispatch(未知来源) 在 java.awt.EventQueue.dispatchEvent(未知来源) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(未知来源) 在 java.awt.EventDispatchThread.pumpEventsForFilter(未知来源) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(未知来源) 在 java.awt.EventDispatchThread.pumpEvents(未知来源) 在 java.awt.EventDispatchThread.pumpEvents(未知来源) 在 java.awt.EventDispatchThread.run(未知来源) 引起:java.lang.ClassNotFoundException:b 在 sun.plugin2.applet.Applet2ClassLoader.findClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) ... 14 更多 引起:java.io.IOException:打开HTTP连接失败:http://mystikrpg.com/b.class 在 sun.plugin2.applet.Applet2ClassLoader.getBytes(未知来源) 在 sun.plugin2.applet.Applet2ClassLoader.access$000(未知来源) 在 sun.plugin2.applet.Applet2ClassLoader$1.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) ... 17 更多 异常:java.lang.RuntimeException:java.lang.NoClassDefFoundError:b
这是混淆之前的 jar 文件内部的内容clientOffline.jar
:
line_tile/
META-INF/
这是混淆后的 jar 文件newOne.jar
:
line_tile/
META-INF/
weapon/
me.gif
a.class
b.class
我希望这足以帮助我解决这个问题。我究竟做错了什么?