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

如何解决Spring Boot项目中MATLAB classpath.txt不再支持的警告?

问题:Spring Boot项目集成MATLAB R2018a时出现classpath.txt警告

我搭建了一个Spring Boot Java项目,使用MATLAB 9.4.0.949201 (R2018a) Update 6(对应Java版本1.8.0_144-b01)。之前因为遇到"MATLAB Java Package版本与MCR版本不兼容"的错误,把MATLAB从R2023a降级到R2018a,解决了部分问题,但现在出现如下警告:

Warning: classpath.txt in the startup directory no longer supported. See The Static Path

以下是项目的pom.xml内容:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.8.RELEASE</version>
  </parent>
    <groupId>com.example</groupId>
    <artifactId>demo1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo1</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>11</java.version>
        <start-class>peridynamics.demoApp</start-class>
       <cholSolver.path>C:\Users\user\Desktop\PDTO\pdtopolys\cholSolver.jar</cholSolver.path>
        <javabuilder.path>C:\Program Files\MATLAB\R2018a\toolbox\javabuilder\jar\javabuilder.jar</javabuilder.path>     
         
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.googlecode.matrix-toolkits-java</groupId>
            <artifactId>mtj</artifactId>
            <version>1.0.2</version>
        </dependency>
        
       <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.7.0</version> 
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <version>2.7.0</version> 
        <scope>test</scope>
     </dependency>    
   
    <!-- Replace hard-coded paths with variables   -->
    <dependency>
        <groupId>peridynamics</groupId>
        <artifactId>cholSolver</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>${cholSolver.path}</systemPath>
    </dependency>    
    <dependency>
        <groupId>com.mathworks</groupId>
        <artifactId>javabuilder</artifactId>
        <version>R2018a</version>
        <scope>system</scope>
        <systemPath>${javabuilder.path}</systemPath>
    </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>peridynamics.demoApp</mainClass>
                    <layout>JAR</layout>
                </configuration>
             
            </plugin>
        </plugins>
    </build>      
</project>

添加Spring Boot Maven插件之前,JAR能正常构建,之后就出现这个警告。想问怎么解决?要不要修改Spring Boot或Maven版本?

我的Maven版本信息如下:

Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
Maven home: C:\Program Files\apache-maven-3.9.4
Java version: 11.0.19, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-11
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"

解决方案

1. 先搞懂警告的本质

这个警告是MATLAB的提示:启动目录下的classpath.txt配置方式已经被废弃。MATLAB从R2017b开始就不再支持通过这个文件配置静态类路径,转而推荐用javaclasspath/javaaddpath命令动态添加,或者通过MATLAB预设界面配置类路径。

2. 排查Spring Boot集成后的触发原因

添加Spring Boot Maven插件后出现警告,大概率是插件打包时把MATLAB相关的classpath.txt文件包含到了JAR根目录或项目运行的工作目录,触发了MATLAB的废弃提示。

具体修复步骤:

  • 删除项目中的classpath.txt:检查项目的src/main/resources或根目录,如果存在这个文件直接删除;如果是MATLAB自动生成的,确保它不会被Maven打包到最终JAR里。
  • 配置Maven排除该文件:在Spring Boot Maven插件中添加排除规则,避免classpath.txt被打包:
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <mainClass>peridynamics.demoApp</mainClass>
        <layout>JAR</layout>
        <excludes>
            <exclude>
                <groupId>*</groupId>
                <artifactId>*</artifactId>
                <includes>
                    <include>classpath.txt</include>
                </includes>
            </exclude>
        </excludes>
    </configuration>
</plugin>
  • 改用MATLAB推荐的类路径配置方式:不要依赖classpath.txt,在代码里通过javabuilderAPI动态指定类路径,或者在MATLAB中提前配置好。

3. 修复版本兼容性问题

Java版本冲突

MATLAB R2018a基于Java 8编译,但你的项目配置的java.version是11,虽然Spring Boot 2.1.x支持Java 11,但javabuilder.jar和高版本Java可能存在兼容性问题。建议把项目Java版本改成1.8:

<properties>
    <java.version>1.8</java.version>
    <!-- 其他属性保持不变 -->
</properties>

Spring Boot版本不统一

当前项目父依赖是2.1.8.RELEASE,但web和test依赖手动指定了2.7.0,版本不统一会导致依赖冲突。二选一修复:

  • 统一用父版本:去掉web、test依赖的手动version配置,继承父依赖的2.1.8.RELEASE;
  • 升级父依赖到2.7.0:2.7.x支持Java 8-17,和MATLAB的Java 8兼容:
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.0</version>
</parent>

Maven版本

Maven 3.9.4和Spring Boot 2.1.x/2.7.x都兼容,不需要修改Maven版本。

4. 验证修复

修改后执行mvn clean package构建JAR,运行时检查警告是否消失。如果还有警告,继续排查是否有其他位置的classpath.txt被加载。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:35:01