首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jar在使用ProGuard进行模糊处理后无法运行

jar在使用ProGuard进行模糊处理后无法运行
EN

Stack Overflow用户
提问于 2016-07-09 17:29:39
回答 0查看 636关注 0票数 0

我在jar文件中有应用程序。我试着用ProGuard来混淆它。在我的ProGuard配置文件中,我添加了:

代码语言:javascript
运行
复制
-keep public class forms.Login{
    public static void main(java.lang.String[]);
}

混淆后的映射文件显示: forms.Login -> forms.Login:...void main(java.lang.String[]) -> main...

我运行我的应用程序java -cp pathToObfusticatedJar.jar forms.Login,但我得到错误:

代码语言:javascript
运行
复制
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.VerifyError: Expecting a stackmap frame at branch target 52
Exception Details:
  Location:
    forms/Login.main([Ljava/lang/String;)V @0: invokestatic
  Reason:
    Expected stackmap frame at this location.
  Bytecode:
    0x0000000: b800 904c 2bbe 3d03 3e1d 1ca2 0026 2b1d
    0x0000010: 323a 0412 0619 04b6 0093 b600 6499 000e
    0x0000020: 1904 b600 92b8 0091 a700 0984 0301 a7ff
    0x0000030: dba7 0050 4c12 0db6 0061 b800 68b2 003f
    0x0000040: 012b b600 69a7 003c 4c12 0db6 0061 b800
    0x0000050: 68b2 003f 012b b600 69a7 0028 4c12 0db6
    0x0000060: 0061 b800 68b2 003f 012b b600 69a7 0014
    0x0000070: 4c12 0db6 0061 b800 68b2 003f 012b b600
    0x0000080: 69bb 0013 59b7 005a b800 5fb1
  Exception Handler Table:
    bci [0, 49] => handler: 52
    bci [0, 49] => handler: 72
    bci [0, 49] => handler: 92
    bci [0, 49] => handler: 112

        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
        at java.lang.Class.privateGetMethodRecursive(Unknown Source)
        at java.lang.Class.getMethod0(Unknown Source)
        at java.lang.Class.getMethod(Unknown Source)
        at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

有没有人能解释一下我做错了什么?我必须在cmd中更改proguard配置或以某种方式设置main方法吗?另外,我相信我已经设置了保持我的public static void main方法,但是Proguard改变了它。为什么?怎样才能让它保持原样?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38280355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档