构建成功但无法在Open Liberty 3.7.1部署Jar,返回码RC=24
问题:Open Liberty启动失败(RC=24,默认目录非绝对路径错误)
尝试将WebSphere项目迁移至Open Liberty,Maven clean+build 执行无报错且编译成功,但运行 liberty:run 命令时失败,返回错误码RC=24。查看FFDC日志发现核心错误为java.lang.AssertionError: Default directory is not an absolute path。
Maven执行错误日志
[ERROR] Failed to execute goal io.openliberty.tools:liberty-maven-plugin:3.7.1:run (default-cli) on project ACONEAR: CWWKM2002E: Failed to invoke ["C:\git\repos\eclipse\acon\ACONEAR\target\liberty\wlp\bin\server.bat", run, defaultServer]. RC= 24 but expected=0. -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal io.openliberty.tools:liberty-maven-plugin:3.7.1:run (default-cli) on project ACONEAR: CWWKM2002E: Failed to invoke ["C:\git\repos\eclipse\acon\ACONEAR\target\liberty\wlp\bin\server.bat", run, defaultServer]. RC= 24 but expected=0. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:215) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289) at org.apache.maven.cli.MavenCli.main(MavenCli.java:193) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) at java.lang.reflect.Method.invoke(Method.java:508) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347) Caused by: org.apache.maven.plugin.MojoExecutionException: CWWKM2002E: Failed to invoke ["C:\git\repos\eclipse\acon\ACONEAR\target\liberty\wlp\bin\server.bat", run, defaultServer]. RC= 24 but expected=0. at org.codehaus.mojo.pluginsupport.MojoSupport.execute(MojoSupport.java:137) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210) ... 20 more Caused by: CWWKM2002E: Failed to invoke ["C:\git\repos\eclipse\acon\ACONEAR\target\liberty\wlp\bin\server.bat", run, defaultServer]. RC= 24 but expected=0. at io.openliberty.tools.ant.ServerTask.doRun(ServerTask.java:376) at io.openliberty.tools.ant.ServerTask.execute(ServerTask.java:145) at io.openliberty.tools.maven.server.RunServerMojo.doExecute(RunServerMojo.java:131) at org.codehaus.mojo.pluginsupport.MojoSupport.execute(MojoSupport.java:122) ... 22 more [ERROR] [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn <args> -rf :ACONEAR
FFDC错误日志
Exception = java.lang.NoClassDefFoundError Source = com.ibm.ws.kernel.launch.internal.ProvisionerImpl probeid = 337 Stack Dump = java.lang.NoClassDefFoundError: java.nio.file.FileSystems$DefaultFileSystemHolder (initialization failure) at java.lang.J9VMInternals.initializationAlreadyFailed(J9VMInternals.java:96) at java.nio.file.FileSystems.getDefault(FileSystems.java:187) at java.io.File.toPath(File.java:2245) at org.eclipse.osgi.storage.url.reference.ReferenceURLConnection.checkRead(ReferenceURLConnection.java:73) at org.eclipse.osgi.storage.url.reference.ReferenceURLConnection.connect(ReferenceURLConnection.java:63) at org.eclipse.osgi.storage.url.reference.ReferenceURLConnection.getInputStream(ReferenceURLConnection.java:113) at java.net.URL.openStream(URL.java:1079) at com.ibm.ws.kernel.launch.internal.ProvisionerImpl.installKernelBundle(ProvisionerImpl.java:291) at com.ibm.ws.kernel.launch.internal.ProvisionerImpl.installBundles(ProvisionerImpl.java:248) at com.ibm.ws.kernel.launch.internal.ProvisionerImpl.initialProvisioning(ProvisionerImpl.java:97) at com.ibm.ws.kernel.launch.internal.FrameworkManager.innerLaunchFramework(FrameworkManager.java:490) at com.ibm.ws.kernel.launch.internal.FrameworkManager.launchFramework(FrameworkManager.java:316) at com.ibm.ws.kernel.launch.internal.LauncherDelegateImpl.doFrameworkLaunch(LauncherDelegateImpl.java:116) at com.ibm.ws.kernel.launch.internal.LauncherDelegateImpl.launchFramework(LauncherDelegateImpl.java:102) at com.ibm.ws.kernel.boot.internal.KernelBootstrap.go(KernelBootstrap.java:215) at com.ibm.ws.kernel.boot.Launcher.handleActions(Launcher.java:243) at com.ibm.ws.kernel.boot.Launcher.createPlatform(Launcher.java:119) at com.ibm.ws.kernel.boot.cmdline.EnvCheck.main(EnvCheck.java:61) at com.ibm.ws.kernel.boot.cmdline.EnvCheck.main(EnvCheck.java:37) Caused by: java.lang.AssertionError: Default directory is not an absolute path at sun.nio.fs.WindowsFileSystem.<init>(WindowsFileSystem.java:73) at sun.nio.fs.WindowsFileSystemProvider.<init>(WindowsFileSystemProvider.java:65) at sun.nio.fs.DefaultFileSystemProvider.create(DefaultFileSystemProvider.java:48) at java.nio.file.FileSystems$DefaultFileSystemHolder.getDefaultProvider(FileSystems.java:119) at java.nio.file.FileSystems$DefaultFileSystemHolder.access$000(FileSystems.java:100) at java.nio.file.FileSystems$DefaultFileSystemHolder$1.run(FileSystems.java:109) at java.nio.file.FileSystems$DefaultFileSystemHolder$1.run(FileSystems.java:107) at java.security.AccessController.doPrivileged(AccessController.java:678) at java.nio.file.FileSystems$DefaultFileSystemHolder.defaultFileSystem(FileSystems.java:107) at java.nio.file.FileSystems$DefaultFileSystemHolder.<clinit>(FileSystems.java:101) ... 18 more
Messages.log内容
[6/4/25 10:33:08:556 EDT] 00000001 com.ibm.ws.logging.internal.impl.IncidentImpl I FFDC1015I: An FFDC Incident has been created: "java.lang.AssertionError: Default directory is not an absolute path com.ibm.ws.kernel.launch.internal.ProvisionerImpl 337" at ffdc_25.06.04 10.33.08.0.log [6/4/25 10:33:08:599 EDT] 00000001 com.ibm.ws.logging.internal.impl.IncidentImpl I FFDC1015I: An FFDC Incident has been created: "java.lang.NoClassDefFoundError: java.nio.file.FileSystems$DefaultFileSystemHolder (initialization failure) com.ibm.ws.kernel.launch.internal.ProvisionerImpl 337" at ffdc_25.06.04_10.33.08.1.log [6/4/25 10:33:08:620 EDT] 00000001 com.ibm.ws.logging.internal.impl.IncidentImpl I FFDC1015I: An FFDC Incident has been created: "java.lang.NoClassDefFoundError: java.nio.file.FileSystems$DefaultFileSystemHolder (initialization failure) com.ibm.ws.kernel.launch.internal.ProvisionerImpl checkInstallStatus" at ffdc_25.06.04_10.33.08.2.log [6/4/25 10:33:08:630 EDT] 00000001 com.ibm.ws.logging.internal.impl.IncidentImpl I FFDC1015I: An FFDC Incident has been created: "java.lang.AssertionError: Default directory is not an absolute path com.ibm.ws.kernel.launch.internal.ProvisionerImpl checkInstallStatus" at ffdc_25.06.04_10.33.08.3.log
解决方案
- 修复HOME环境变量路径:
Windows系统下,检查%USERPROFILE%或%HOME%环境变量是否为绝对路径。打开命令行输入echo %USERPROFILE%查看,若路径无效或为相对路径,手动设置为正确的绝对路径(例如C:\Users\你的用户名),重启命令行后重试。 - 清理并重建Open Liberty环境:
删除项目根目录下的target/liberty文件夹,重新执行mvn liberty:run,让Maven重新下载并配置Open Liberty。 - 验证JDK兼容性:
确保使用的JDK版本与Open Liberty 3.7.1兼容,推荐使用OpenJDK 8、11或17,避免使用非标准JDK或过旧版本。 - 手动指定Open Liberty安装路径:
在pom.xml中为liberty-maven-plugin添加installDirectory配置,指定绝对路径的安装目录,示例:<plugin> <groupId>io.openliberty.tools</groupId> <artifactId>liberty-maven-plugin</artifactId> <version>3.7.1</version> <configuration> <installDirectory>C:\openliberty\wlp</installDirectory> <!-- 其他原有配置 --> </configuration> </plugin>
内容的提问来源于stack exchange,提问作者IcyNeko
相关产品推荐
相关产品推荐

