正如您所说,您的 Tibco JRE 和自定义函数 .class 文件中有不兼容的 Java 版本。
当您将使用 Java 1.7(主要版本 51.0)创建的类文件运行到较低的 Tibco 环境 JRE 版本(例如 JRE 6 或 5)中时,会出现 Unsupported major.minor version 51.0 错误。
主要数字是:
Java SE 13 = 57,
Java SE 12 = 56,
Java SE 11 = 55,
Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45
(来源:https://en.wikipedia.org/wiki/Java_class_file#General_layout)
您可以在 Tibco Designer 中查看 Tibco JRE 版本 Help->Runtime Environment -> Java tab ->(java.runtime.version)
您可以通过
查看自定义函数的版本
javap -verbose MyFunction.class| findstr "major"
how to check the jdk version used to compile a .class file
因此,您需要更改您的 tibco JRE 版本以与您的类版本兼容,或者使用与您的 Tibco JRE 兼容的版本重新构建您的自定义函数类。
您可以在构建函数时使用 -target 选项在 java 编译器中指定 java 版本。
javac -target 1.6 MyFunction.java
如果你没有函数的源代码,你可以使用JDhttp://jd.benow.ca/这样的反编译器
要在 Tibco 中更改 JRE,您需要将所有 .tra 文件重新配置为新的 java 版本路径。您可以为此使用 /tra//bin/traUpgradeManager 实用程序:
traUpgradeManager -path C:/tibco/bw/5.7 -jre C:/tibco/jre/1.7
traUpgradeManager -path C:/tibco -jre C:/tibco/jre/1.7
详情请见https://support.tibco.com/s/article/Tibco-KnowledgeArticle-Article-33612。
请注意,在所有 tibco 环境中更改 JRE 可能并非易事。在您的情况下,重新编译自定义函数更容易匹配。