jvmp 文档 ← 返回落地页

接入指南 · 交付方式 · API 参考。商业交付完整文档随交付包(README-DELIVERY.md)提供。

它是什么

jvmp 把 Java 类编译为自定义 VM 指令(纯 Java 实现的解释器内嵌进产物 jar), 原 bytecode 从产物中消失——逆向者面对的是一套每次构建形态都不同的虚拟机。 适用于 license 校验、核心算法、付费逻辑等高价值代码的保护。

安装插件(第一步——wrapper 免费下载)

下载 wrapper 接入包(maven 仓库 布局,不含引擎——保护在云端完成,可自由分发),解压后 buildscript 声明仓库 即用;server 零配置(默认连 jvmp.cn)。私有部署/离线引擎/AGP/Maven 插件走 企业形态(私有部署/离线工具链等)见商务合作。

快速开始(四端接入)

装好插件后零 input/output 配置——jar 产物自动重打包(构建产出即保护后成品)。

Gradle(JVM 项目)

buildscript {
    repositories { maven { url '<jvmp 交付仓库地址>' } }
    dependencies { classpath 'org.jvmp:jvmp-gradle-plugin:<version>' }
}
apply plugin: 'org.jvmp'

jvmp {
    input = tasks.jar
    // 未配置的类【默认整类虚拟化】——核心算法类无需配置
    remote { token = '<token>' }
}

Maven

<plugin>
    <groupId>org.jvmp</groupId>
    <artifactId>jvmp-maven-plugin</artifactId>
    <configuration>
        <token>${env.JVMP_TOKEN}</token>
        <virtual><param>com/yourco/PriceEngine</param></virtual>
    </configuration>
</plugin>

Android(AGP)

buildscript {
    dependencies { classpath 'org.jvmp:jvmp-agp-plugin:<version>' }
}
apply plugin: 'org.jvmp.android'
jvmpAndroid {
    // 核心类默认虚拟化,无需配置
    remote { token = System.env.JVMP_TOKEN }
}

CLI(社区版·本地工具)

jvmp protect --in app.jar --out app-protected.jar \
    --virtual com/yourco/PriceEngine

交付方式(商业闭源)

jvmp 不发布公开仓库(Maven Central / Gradle Plugin Portal)。交付形态为 完整 maven 仓库布局包,三选一接入:

细节见交付包内 README-DELIVERY.md。

常用配置

键默认说明
virtual激进默认fully-virtual(类整类消失、逻辑进 VM)——未配置的类默认即此档;不可虚拟化的自动降骨架并记构建日志
keepReal[]原样保留字节码的类(DTO/接口/被反射访问——其代码不得直接调用 virtual 类)
skeleton[]骨架档:类形态保留、方法体进 VM(编排/入口层推荐——可安全调用 virtual 类)
variants1每方法等价语义变体数(2-3 推荐,抗差分)
minBytecodeVersion8≥9 注入 module-info(JPMS 防篡改);≥11 启用 nestmate 访问器
interpreters1解释器实例数(多态分散)
shards / shardKey1模块分片(shards>1 时密钥必填)
rules""ProGuard keep 规则叠加

更多