接入指南 · 交付方式 · API 参考。商业交付完整文档随交付包(README-DELIVERY.md)提供。
jvmp 把 Java 类编译为自定义 VM 指令(纯 Java 实现的解释器内嵌进产物 jar), 原 bytecode 从产物中消失——逆向者面对的是一套每次构建形态都不同的虚拟机。 适用于 license 校验、核心算法、付费逻辑等高价值代码的保护。
下载 wrapper 接入包(maven 仓库 布局,不含引擎——保护在云端完成,可自由分发),解压后 buildscript 声明仓库 即用;server 零配置(默认连 jvmp.cn)。私有部署/离线引擎/AGP/Maven 插件走 企业形态(私有部署/离线工具链等)见商务合作。
装好插件后零 input/output 配置——jar 产物自动重打包(构建产出即保护后成品)。
buildscript {
repositories { maven { url '<jvmp 交付仓库地址>' } }
dependencies { classpath 'org.jvmp:jvmp-gradle-plugin:<version>' }
}
apply plugin: 'org.jvmp'
jvmp {
input = tasks.jar
// 未配置的类【默认整类虚拟化】——核心算法类无需配置
remote { token = '<token>' }
}
<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>
buildscript {
dependencies { classpath 'org.jvmp:jvmp-agp-plugin:<version>' }
}
apply plugin: 'org.jvmp.android'
jvmpAndroid {
// 核心类默认虚拟化,无需配置
remote { token = System.env.JVMP_TOKEN }
}
jvmp protect --in app.jar --out app-protected.jar \
--virtual com/yourco/PriceEngine
jvmp 不发布公开仓库(Maven Central / Gradle Plugin Portal)。交付形态为 完整 maven 仓库布局包,三选一接入:
repo/ 到项目 libs/,
buildscript repositories 指向相对路径(零基础设施)细节见交付包内 README-DELIVERY.md。
| 键 | 默认 | 说明 |
|---|---|---|
| virtual | 激进默认 | fully-virtual(类整类消失、逻辑进 VM)——未配置的类默认即此档;不可虚拟化的自动降骨架并记构建日志 |
| keepReal | [] | 原样保留字节码的类(DTO/接口/被反射访问——其代码不得直接调用 virtual 类) |
| skeleton | [] | 骨架档:类形态保留、方法体进 VM(编排/入口层推荐——可安全调用 virtual 类) |
| variants | 1 | 每方法等价语义变体数(2-3 推荐,抗差分) |
| minBytecodeVersion | 8 | ≥9 注入 module-info(JPMS 防篡改);≥11 启用 nestmate 访问器 |
| interpreters | 1 | 解释器实例数(多态分散) |
| shards / shardKey | 1 | 模块分片(shards>1 时密钥必填) |
| rules | "" | ProGuard keep 规则叠加 |