Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

m3u8-downloader-decryptor 打包与独立运行指南

本项目已经过配置优化,支持完全脱离 IntelliJ IDEA 开发环境,在 Windows 命令行(CMD/PowerShell)中独立运行。程序会自动加载运行目录下的 config.ini 配置文件,并提供一键式交互下载循环。


🛠️ 第一部分:编译与打包成独立 JAR

当你的源码或 pom.xml 发生变更,或者第一次生成发布包时,需要执行此步骤。

1. 确认 pom.xml 构建配置

确保项目根目录下的 pom.xml 中已包含 maven-shade-plugin 插件,该插件负责将 Selenium、Jsoup、Logback 等所有第三方依赖以及主清单属性(Main Class)融合打入单个 JAR 包:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.6.0</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <!-- 锁定的程序启动主类 -->
                                <mainClass>com.downloader.AutoM3u8App</mainClass>
                            </transformer>
                        </transformers>
                        <filters>
                            <filter>
                                <artifact>*:*</artifact>
                                <excludes>
                                    <exclude>META-INF/*.SF</exclude>
                                    <exclude>META-INF/*.DSA</exclude>
                                    <exclude>META-INF/*.RSA</exclude>
                                </excludes>
                            </filter>
                        </filters>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

2. 执行打包命令

打开终端(CMD 或 PowerShell),进入项目根目录 D:\m3u8-downloader-decryptor>,执行以下构建命令:

mvn clean package -DskipTests
  • clean:清理历史编译缓存。
  • package:编译并打包。-DskipTests 表示跳过单元测试。
  • 成功标志:控制台末尾打印出明显的 [INFO] BUILD SUCCESS。

3. 提取目标文件

打包成功后,进入项目下的 target 目录,提取核心生成的独立胖包:

  • 目标文件:m3u8-downloader-decryptor-1.0-SNAPSHOT.jar (包含所有依赖,体积较大)。
  • 注意:无需理会 original- 开头的空壳 JAR 包。

🚀 第二部分:部署与日常使用方法

为了方便日常高频使用,建议将运行环境抽离到独立文件夹中。

1. 建立独立运行目录

在电脑的任意位置(例如 D:\m3u8-dl\)新建一个干净的文件夹,将以下三个核心元素放置在同一层级:

D:\m3u8-dl\
├── m3u8-downloader-decryptor-1.0-SNAPSHOT.jar  (从 target 目录复制而来)
├── config.ini                                  (从项目根目录复制而来)
└── run.bat                                     (手动创建的一键启动脚本)

⚠️ 关键原理:Java 程序在运行时通过相对路径读取 config.ini。因此,config.ini 必须与正在运行的 JAR 包躺在同一个文件夹内。

2. 创建一键循环启动脚本 (run.bat)

在上述独立运行目录下,使用 Notepad++ 新建一个名为 run.bat 的文件,填入以下代码:

@echo off
:: 1. 强制将当前 CMD 窗口的字符集切换为 UTF-8
chcp 65001 >nul

:: 2. 注入 Java 工具全局变量,强制 JVM 使用 UTF-8 编码输出
set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8

:START_DOWNLOAD
cls
echo ======================================================
echo             M3U8 下载解密工具已启动
echo ======================================================
echo.

:: 3. 运行你的独立 JAR 包
java -jar m3u8-downloader-decryptor-1.0-SNAPSHOT.jar

echo.
echo ======================================================
echo 下载任务已结束。
echo ======================================================
echo.

:CHOOSE_ACTION
:: 4. 询问用户下一步操作,默认按回车直接继续
set "choice="
set /p choice="【按回车键】继续下载新视频,或输入 [q] 退出程序: "

:: 如果用户输入了 q 或 Q,则跳转到退出逻辑
if /i "%choice%"=="q" goto END_PROGRAM

:: 如果是其他输入(或直接按回车清空),则重新开始下载循环
goto START_DOWNLOAD

:END_PROGRAM
echo.
echo 正在安全关闭程序并退出...
choice /t 1 /d y /n >nul
exit

💡 编码避坑提示(非常重要)

如果在双击 run.bat 时出现一闪而过、中文选项失效或直接闪退的现象,通常是因为 Windows 批处理对 UTF-8 的兼容问题。请用 Notepad++ 打开该 run.bat,在上方菜单栏选择 “编码” (Encoding):

  • 如果系统是较新的 Windows 11,推荐选择 UTF-8-BOM 编码 格式保存。
  • 如果仍然闪退,请选择 ANSI 编码 格式保存。

⚡ 日常运行特性

  1. 一键双击:日常使用时,直接双击运行 run.bat 即可,会自动解决高级终端带来的中文乱码问题。
  2. 无限循环下载:当一个视频下载并解密合并完成后,控制台会自动停下。此时无需输入任何内容,直接按下键盘上的【回车键(Enter)】,脚本会自动清屏并重新拉起下载器,等待你输入下一个网址。
  3. 安全平稳退出:输入字母 q(不区分大小写)并回车,控制台将安全释放 Java 虚拟机持有的文件流并自动关闭窗口,有效保护 M:/ 缓存盘上的切片数据不被损坏。
  4. 动态改配:若需要更换代理(如切换 127.0.0.1:1611)或修改输出目录,直接用 Notepad++ 修改该目录下的 config.ini 并保存,下次循环或双击启动时会直接生效,无需重新进行 Maven 打包。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages