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

如何在Windows命令提示符中无需Maven编译运行带依赖的Java程序?

问题描述

我正在使用一个依赖Java Stream Player库的jar文件,该库托管在GitHub上。这个jar文件名为musicplayer-1.0.0.jar,其清单文件(MANIFEST.MF)内容如下:

Manifest-Version: 1.0
Created-By: Maven Jar Plugin 3.2.0
Build-Jdk-Spec: 17
Class-Path: lib/slf4j-api-1.7.31.jar lib/logback-classic-1.2.3.jar lib/l
 ogback-core-1.2.3.jar lib/java-stream-player-10.0.0.jar lib/mp3spi-1.9.
 5.4.jar lib/jlayer-1.0.1.4.jar lib/junit-3.8.2.jar lib/jflac-codec-1.5.
 2.jar lib/vorbis-support-1.1.0.jar lib/tritonus-all-0.3.7.2.jar lib/jor
 bis-0.0.17-2.jar lib/jaudiotagger-2.2.7.jar lib/commons-io-2.6.jar
Implementation-Title: musicplayer
Implementation-Version: 1.0.0
Main-Class: gr.hua.dit.oop2.musicplayer.MusicPlayerApp

对应的Maven仓库配置:

<repositories>
    <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
    </repository>
</repositories>

依赖定义:

<dependency>
    <groupId>com.github.goxr3plus</groupId>
    <artifactId>java-stream-player</artifactId>
    <version>Tag</version>
</dependency>

我想在Windows命令提示符下不使用Maven或其他工具,仅用简单命令编译运行自己的代码,执行的命令如下:

javac -classpath musicplayer-1.0.0.jar Jukebox.java
java Jukebox Vivaldi-Storm.mp3

其中musicplayer-1.0.0.jar是依赖上述库的jar文件,Jukebox.java是我的Java源码文件,Vivaldi-Storm.mp3是程序运行需要的参数。

但执行第二条命令时抛出异常:

java.lang.ClassNotFoundException: com.goxr3plus.streamplayer.stream.StreamPlayerListener

另外我无法直接导入外部源码包,比如:

import com.goxr3plus.streamplayer.stream.*;

请问该如何解决?


解决方案

出现ClassNotFoundException的核心原因是运行时类路径中缺少Java Stream Player库本身以及它依赖的其他第三方jar包。以下是具体解决步骤:

1. 准备所有依赖jar包

从MANIFEST.MF的Class-Path字段可以看到,musicplayer-1.0.0.jar依赖多个jar包,其中核心的java-stream-player-10.0.0.jar是你当前缺失的关键依赖:

  • 在musicplayer-1.0.0.jar所在目录下创建lib文件夹
  • 下载Class-Path中列出的所有jar包,放入lib文件夹内。java-stream-player-10.0.0.jar可从对应仓库的release版本获取,其他jar包可从Maven仓库下载。

2. 修正编译与运行命令

编译命令

编译时需要将musicplayer-1.0.0.jar和所有依赖jar加入类路径:

javac -cp "musicplayer-1.0.0.jar;lib/*" Jukebox.java

注意:Windows系统类路径分隔符为;,若使用其他系统需替换为:。

运行命令

运行时必须包含当前目录(存放编译生成的Jukebox.class)、musicplayer-1.0.0.jar以及所有依赖jar:

java -cp ".;musicplayer-1.0.0.jar;lib/*" Jukebox Vivaldi-Storm.mp3

3. 解决导入问题

如果无法导入com.goxr3plus.streamplayer.stream.*,说明编译时类路径未正确包含java-stream-player-10.0.0.jar。检查lib文件夹是否存在该jar,并且编译命令的lib/*已覆盖到它即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:10:34