我正在研究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,我已经搜索了很多解决方案,其中一些如下:-
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 ,现在默认情况下拆分了验证,而没有禁用它的方法。
请帮助我。