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

Java 11环境下Jetty启动报错:无法找到或加载主类

问题分析与解决

这个错误不是Java版本不兼容或依赖版本问题,核心原因是类路径(classpath)中包含空格的路径未被正确处理,导致Java解析时将路径截断,找不到对应的主类。

错误原因拆解

从报错信息可以明显看出问题:

Error: Could not find or load main class Files\SomeFolder\al\al.jar;C:\Program
Caused by: java.lang.ClassNotFoundException: Files\SomeFolder\al\al/jar;C:\Program

原本的路径应该是类似C:\Program Files\SomeFolder\al\al.jar的格式,但因为路径中的空格(Program Files)未被转义,Java将其拆分为两个无效的路径片段:Files\SomeFolder\al\al.jar和C:\Program,自然无法找到对应的类或Jar包。

解决步骤

  1. 修正带空格的路径引用
    所有包含空格的路径必须用双引号包裹,比如将C:\Program Files\SomeFolder\al\al.jar改为"C:\Program Files\SomeFolder\al\al.jar",确保Java能识别完整路径。

  2. 检查Eclipse运行配置

    • 打开Run Configurations,找到你的Jetty启动配置项
    • 切换到Arguments标签,查看VM参数中的classpath相关配置,确认带空格的路径是否已用引号包裹
    • 切换到Classpath标签,检查Jar包路径条目,确保带空格的路径被正确识别(Eclipse通常会自动处理,但手动配置时可能出错)
  3. 完善Maven配置

    • 确保maven-compiler-plugin正确配置Java 11版本,避免编译和运行环境不一致:
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.1</version>
          <configuration>
              <source>11</source>
              <target>11</target>
              <fork>true</fork>
              <executable>${jdk.javac}</executable>
          </configuration>
      </plugin>
      
    • 检查是否有其他Maven插件(如maven-jar-plugin、maven-surefire-plugin)配置了classpath路径,确保带空格的路径被正确处理。
  4. 验证JDK 11配置完整性

    • 确认项目Build Path中的JRE System Library已切换为JDK 11
    • 检查Eclipse的Installed JREs配置,确保JDK 11的路径未包含未转义的空格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 11:03:17