You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java String.isBlank()在Eclipse/Shell正常但JAR包中异常问题

问题分析与解决方案

核心原因

你遇到的问题本质是Java版本兼容性问题:String.isBlank()是Java 11才引入的方法。你的开发环境(Eclipse、Powershell)使用的JDK版本≥11,代码能正常执行;但导出JAR后运行的JRE版本低于11,调用isBlank()时会抛出NoSuchMethodError。由于这个异常未被捕获或打印日志,导致方法执行中断,看起来像是“卡在判断环节”,既不进入if也不执行else分支。

验证方式

在sendWarningSMS方法开头添加全局异常捕获,或者查看JVM错误日志,会发现明确的NoSuchMethodError提示,指向String.isBlank()方法。

解决方案

有两种可行处理方式:

  • 统一Java版本:确保JAR运行环境的JRE版本≥11,和开发环境的JDK版本保持一致。
  • 兼容低版本写法:把!mobileNumberFromConfigFile.isBlank()替换为Java 8及以上都支持的等效代码:
    !mobileNumberFromConfigFile.trim().isEmpty()
    
    这样无论运行环境是Java 8还是更高版本,都能正常执行空字符串判断。

额外建议

打包JAR时,确认编译用的JDK版本和目标运行环境的JRE版本匹配,避免类似API兼容性问题。可以在IDE编译设置里指定目标Java版本,或用Maven/Gradle的sourceCompatibility和targetCompatibility参数统一版本。

内容的提问来源于stack exchange,提问作者Sandro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 12:43:10