自定义函数不受支持 major.minor 版本 51.0 TIBCO Designer 5.7

Custom Function Unsupported major.minor version 51.0 TIBCO Designer 5.7

我正在使用 TIBCO Designer 5.7。

在我的 Designer 代码的 Mapper pallet 中,我正在使用自定义 Java 函数 "Utilities",但是在使用它时它给我一个错误 "Custom Function Utilities: Unsupported major.minor version 51.0"。在XPath 部分表示 "no such function"。我认为这是因为 TIBCO 的 Java 与我的 Java JDK 不兼容。有人可以详细解释如何解决这个问题吗?

错误请参考图片

正如您所说,您的 Tibco JRE 和自定义函数 .class 文件中的 Java 版本不兼容。 当您 运行 使用 Java 1.7(主要版本 51.0)创建的 class 文件进入较低的 Tibco 环境 JRE 版本(例如 JRE 6 或 5)时,出现不受支持的 major.minor 版本 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 Help->Runtime Environment -> Java 选项卡 ->(java.runtime.version)[=18= 中查看 Tibco JRE 版本]

您可以通过

检查自定义函数的版本
javap -verbose MyFunction.class| findstr "major"

how to check the jdk version used to compile a .class file

因此,您需要更改您的 tibco JRE 版本以与您的 class 版本兼容,或者使用与您的 Tibco JRE 兼容的版本重新构建自定义函数 class。

您可以在构建函数时使用 -target 选项在 java 编译器中指定 java 版本。

javac -target 1.6 MyFunction.java

如果您没有函数的源代码,您可以使用像 JD 这样的反编译器 http://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 可能不是一个简单的过程。在你的情况下,重新编译自定义函数更容易匹配。

您好,我可以通过以下步骤解决它:- 1) 转到存储自定义 java class 的文件夹,在我的例子中是 "Utilities.java"

2) 现在我们将使用 TIBCO 的 java 为此 class 创建一个 .class 文件,而不是我们自己本地安装的 java jre,作为新的.class 文件属于 TIBCO, 为此转到您的 TIBCO_HOME>tibcojre64>1.6.0>bin,运行 CMD 并提供以下命令:-

这将在同一文件夹中创建一个 Utilities.class 文件

3) 现在在 Designer 中创建自定义 Java 函数并引用此 .class 文件。

4) 现在加载-> 应用-> 保存项目并重新启动您的设计器。错误将消失