JDK 1.8 java.lang.VerifyError:在分支目标47

时间:2019-08-07 07:40:36

标签: java maven jar jvm proguard

我正在研究javafx项目,并将其转换为maven。 我正在其中实现progaurd并生成加密的(带有混淆)jar。但是当我尝试使用

运行jar时
  

java -jar test.jar

在出现错误->

后给我
Exception in thread "JavaFX Application Thread" Exception in thread "main" java.lang.VerifyError: Expecting a stackmap frame at branch target 47
Exception Details:
  Location:
smartSearch/SmartSearch.setFontStyle(Ljava/lang/String;)V @3: ifnull
  Reason:
Expected stackmap frame at this location.
  Bytecode:
0x0000000: b200 2bc6 002c b200 2b12 03b6 004a 4c2b
0x0000010: c600 1f2b bb00 1259 b700 3912 02b6 003a
0x0000020: 2ab6 003a 1201 b600 3ab6 003b b600 47b1
0x0000030:                                        

at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplicationWithArgs$413(LauncherImpl.java:352)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$399(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$397(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$398(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)

我正在使用JDK 1.8,我已经搜索了很多解决方案,其中一些如下:-

https://support.cloudbees.com/hc/en-us/articles/225066288-Expecting-a-stackmap-frame-at-branch-target

Getting "Expecting a stackmap frame at branch target" when running Maven integration testing

还有更多..

我发现 JDK1.8 不支持 -XX:-UseSplitVerifier ,而 -noverify 是替代方法。但是当搜索设置 -noverify 时,我很困惑在哪里设置以及如何设置。

我在oracle doc上发现JDK 8中不推荐使用选项 -XX:-UseSplitVerifier ,现在默认情况下拆分了验证,而没有禁用它的方法。

请帮助我。

0 个答案:

没有答案