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

如何在Windows命令提示符中运行带外部依赖的Java类?

如何在Windows命令提示符中运行依赖外部库的Java类(Maven项目)

当然可以在Windows CMD中运行带外部库的Java类,你遇到的java.lang.NoClassDefFoundError是因为JVM运行时找不到Jackson的依赖类——IDE会自动帮你把依赖加入类路径,但CMD环境下需要手动配置。下面是几种实用的解决方法:

方法1:用Maven打包成可执行"胖Jar"(最省心)

通过Maven插件把你的代码和所有依赖打包成一个独立Jar,直接就能运行:

  1. 在项目的pom.xml中添加maven-shade-plugin配置(替换主类全限定名,比如你的Test类在com.example包下就写com.example.Test):
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.4.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>Test</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
  1. 打开CMD,进入项目根目录,运行mvn package
  2. 打包完成后,在target目录下找到带-shaded后缀的Jar文件,运行命令:
java -jar target/你的项目名-版本号-shaded.jar

方法2:手动指定类路径运行

如果不想打包,直接用编译后的class文件运行,需要把依赖Jar和class目录加入类路径:

  1. 先运行mvn compile编译项目,生成的Test.class会在target/classes目录下
  2. 找到Maven本地仓库中的Jackson依赖Jar(默认路径是C:\Users\你的用户名\.m2\repository\com\fasterxml\jackson),需要找全3个核心Jar:jackson-databind、jackson-core、jackson-annotations
  3. 在CMD中用-cp参数指定类路径(注意Windows下用;分隔路径):
java -cp "target\classes;C:\Users\你的用户名\.m2\repository\com\fasterxml\jackson\databind\jackson-databind\2.15.2\jackson-databind-2.15.2.jar;C:\Users\你的用户名\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.15.2\jackson-core-2.15.2.jar;C:\Users\你的用户名\.m2\repository\com\fasterxml\jackson\annotations\jackson-annotations\2.15.2\jackson-annotations-2.15.2.jar" Test

注意:如果Test类有包结构,必须用全限定类名(比如com.example.Test)代替命令中的Test

方法3:用Maven exec插件直接运行

借助Maven插件自动处理依赖,不用手动配置类路径:
打开CMD进入项目根目录,运行命令(替换主类全限定名):

mvn exec:java -Dexec.mainClass="Test"

额外注意点

  • 确保依赖Jar的版本和pom.xml中配置的一致,避免版本不兼容
  • Windows系统类路径分隔符是;,Linux/macOS是:,不要混淆

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:42:38