在Windows上尝试启动Mule 4.4时,出现“Unsupported class file major version 61”错误。

3
双击mule.bat时,我收到以下错误消息。
错误消息:
Caught: BUG! exception in phase 'semantic analysis' in source unit 'C:\NihaMule\mule-ee-distribution-standalone-4.4.0\mule-enterprise-standalone-4.4.0\bin\additional.groovy' Unsupported class file major version 61
4个回答

2

类文件主版本-61,这意味着您的系统安装了JDK 17(最新的Java版本)。

  1. 请安装JDK 11以与Mule兼容。

  2. 更新JAVA_HOME Windows环境变量。

  3. 更新PATH Windows环境变量。

运行mule.bat文件。


我看了一下Mule论坛,但你指引了我正确的方向。我经常根据我的工作在IDE之间切换,但Anystudio让你跳过很多环节...我在这里和论坛上提交了我的答案。 - Paul
Mule 4.4也兼容Java 8。 - aled

1

您似乎在使用不兼容的Java版本启动Mule。

如果您正在使用独立的Mule,请使用兼容的Java版本并将其首先设置在操作系统PATH环境变量中,或者在配置文件wrapper.conf中配置Java可执行文件的完整路径(例如:wrapper.java.command=<Java Home>/bin/java)。

请注意,Mule 4.3/4.4兼容的Java版本仅为JDK 8或JDK 11。不支持任何其他Java/OpenJDK版本。

如果您正在使用Anypoint Studio,请选择适用于您的Mule项目的支持版本


1
作为需要多个Java jdk(或至少最新的LTS版本)的开发人员,我需要不同的方法。首先,您需要知道Anystudio仅适用于jdk8(预安装)或jdk11(可配置)。您可以忘记其他版本。其次,作为Eclipse的派生产品,JAVA_HOME需要指向正确的jdk,否则您将会遇到上述错误,其中61表示用户已配置了jdk17。
配置JDK 11的步骤(适用于Anypoint v7.14.0):
  • 右键单击您的项目
  • 转到“Run As”,选择“Mule Application(configure)”。一个新窗口会打开。
  • 在该窗口中,您会看到多个选项卡。选择“JRE”
  • 选择“Alternate JRE”,然后单击“Installed JRE's”按钮。一个新窗口会打开
  • 在该窗口中,您会看到一个“Add...”按钮。选择“Standard VM”,单击“下一步>”
  • 选择您的jdk目录。单击“完成”,然后从下拉菜单中选择您的jdk。

或者:

  • 找到您的AnypointStudio.ini文件,并根据此处的说明配置您的-vm选项,或者在代码中进行配置:
-vm
C:\Program Files\Java\jdk-11.0.4\bin\javaw.exe

在配置Anystudio.ini文件时,有几种选择,如果以上更改无效,请在Mule论坛上搜索“配置studio使用您自己的jdk”的最新信息。

  • 进入配置并选择“执行环境”而不是备选JRE。确保它指向CDC-1.0/Foundation-1.0(your_jdk_version)

当JAVA_HOME指向正确的jdk时,这应该有效。如果像我一样需要切换到其他版本,则经常手动更改可能会很麻烦。为此,我创建了.bat文件,在启动Anystudio之前执行它们。确保您计算机的路径引用JAVA_HOME而不是硬编码路径。否则,以下步骤将不足够。

创建.bat文件以编程方式更改JAVA_HOME(适用于Windows 11)

  • 打开记事本
  • 键入以下内容,注意更改jdk为您的个人路径/版本:
setx /M JAVA_HOME "C:\Program Files\Java\jdk-11.0.4"
  • 将文件保存为your_file_name.bat并选择“所有文件”
  • 从bat文件创建一个快捷方式
  • 右键单击快捷方式,然后选择“属性”。打开一个新窗口
  • 在打开的窗口中,选择“高级”
  • 选择“以管理员身份运行”,点击“确定”,点击“应用”

请记住,您需要两个.bat文件。一个用于降级JAVA_HOME(在打开Anystudio之前执行),另一个用于恢复它(在完成在Anystudio中工作后执行)。系统设置和命令行不会直接显示更改的JAVA_HOME路径。关闭/重新打开它们以查看更改是否已应用。


这个问题是关于独立运行Mule Runtime,而不是在Studio或Studio内部运行Mule的。无论如何,Studio 7.x包括一个OpenJDK 11安装程序来运行Studio和一个默认执行Mule项目的OpenJDK 8。 - aled

0

从中删除其他Java安装程序(适用于Windows)对我有帮助。

我没有任何环境变量指向任何特定的Java安装程序,这使得AnyPoint studio如何使用这些安装程序很奇怪。

我在运行Windows 11工作站。

注意:一些帖子建议将Mule运行时版本更改为4.2.x,但这会破坏某些功能,例如数据库连接器。在我的情况下,当像这样的功能添加到项目中时,Mule服务变得非常不稳定。


问题是关于执行独立的Mule Runtime,而不是嵌入在Studio中的版本。 - aled

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接