【问题标题】:Exception in thread "main" java.lang.VerifyError: Expecting a stackmap frame at branch target 118线程“主”java.lang.VerifyError 中的异常:在分支目标 118 处期望堆栈图帧
【发布时间】:2017-06-19 05:00:14
【问题描述】:

我已经从 jdk1.6(32) 升级到 jdk1.8(64) 和 Netbeans 从 6.* 到 8.*。 配置设置并成功更新 project.jar 文件。很少有外部罐子按原样使用,如下所示:

file.reference.bcmail-jdk16-136.jar 
file.reference.bcprov-jdk16-136.jar
file.reference.jcommon-1.0.10.jar
file.reference.jdepend.jar
file.reference.jfreechart-1.0.9.jar
file.reference.log4j-1.2.14.jar
file.reference.registry.jar
file.reference.swingx.jar
file.reference.jshrink.jar

现在,我从 inno setup 准备好 app.exe 并部署了 exe,当我尝试运行 exe 时,我收到以下错误弹出消息:“发生 JNI 错误,请检查您的安装并重试”

当尝试从命令提示符运行时,我得到以下堆栈跟踪: C:\Users\100755224>java -jar C:\Dev_TSOFT\Sources\installer\tsoft\TSOFT.jar

=================================

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 118
 Exception Details:
 Location:
 com/alstom/tsoft/Main.<init>([Ljava/lang/String;)V @56: ifeq
 Reason:
 Expected stackmap frame at this location.
 Bytecode:
 0x0000000: 2ab7 0002 2a11 7d91 b500 032a 1204 b500
 0x0000010: 052a bb00 0659 2ab7 0007 b500 082a bb00
 0x0000020: 0959 117d 9112 042a b400 08b7 000b b500
 0x0000030: 0c2a b400 0cb6 000d 9900 3eb8 000e b800
 0x0000040: 0fa7 0004 4d04 b800 112b be04 a000 142a
 0x0000050: bb00 1259 2b03 32b7 0013 b500 01a7 000e
 0x0000060: 2abb 0012 59b7 0014 b500 012a b400 01b6
 0x0000070: 0015 04b6 0016 b1
 Exception Handler Table:
 bci [59, 65] => handler: 68

    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)

我已将库和源 JDK 版本设置为 jdk8。请建议,从 4 天开始,它对我来说是一个工作障碍。

提前致谢

【问题讨论】:

  • 当您说 (64) 时,您是指 64 位还是 u64? JVM 的确切版本是什么?
  • C:\>java -version java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111) -b14,混合模式)
  • inno setup 是做字节码转换还是使用其他字节码处理工具?
  • 抱歉,我不确定。
  • 任何字节码处理工具都必须能够正确处理堆栈图属性,这一点至关重要。在 Java 6 中,对于不正确的代码,旧验证器会回退,而 Java 8 代码不存在这种情况。您必须检查哪些工具或库可能负责并更新它们。如果有疑问,请更新工具链中超过十年的所有软件……

标签: java swing java-8


【解决方案1】:

我知道问题出在哪里了,

inno setup 正在使用旧的 jre,即 1.6,我需要更新那个 jre。 现在的问题是如何更新 inno setup jre 文件?

如果有人知道,请告诉我。

谢谢

【讨论】:

    猜你喜欢
    • 2014-12-31
    • 2014-10-22
    • 2014-09-19
    • 2021-03-26
    • 1970-01-01
    • 2013-02-13
    • 2017-02-22
    • 1970-01-01
    相关资源
    最近更新 更多