Java项目中jar包在window以及Linux环境下的加密

公司项目需要交付时对项目源码进行加密,本文针对Java spring boot项目的jar包运行方式进行加密。

加密工具:xjar,地址:https://gitee.com/core-lib/xjar

前提条件:

  • jdk1.7+
  • Go语言环境(编辑环境需要,运行环境可不需要)

创建一个新项目用于加密jar包

  • 新建一个项目 pom引入以下依赖
 <!-- 设置 jitpack.io 仓库 --><repositories><repository><id>jitpack.io</id><url>https://jitpack.io</url></repository></repositories>
<!-- 添加 XJar 依赖 -->
<dependency><groupId>com.github.core-lib</groupId><artifactId>xjar</artifactId><version>4.0.1</version>
</dependency>

书写加密类

package com.test.jar;import io.xjar.XCryptos;
/*** @ClassName: JarEncryption* @Package: com.test.jar* @Description:* @Datetime: 2020/8/31   10:30* @author: kaishun.zhou*/
public class JarEncryption {public static void main(String[] args) throws Exception {// Spring-Boot Jar包加密XCryptos.encryption().from("C:\\zhoukaishun\\study\\target\\study.jar").use("io.xjar").exclude("/static/**/*").exclude("/templates/**/*").exclude("/META-INF/resources/**/*").to("C:\\zhoukaishun\\study\\target\\study-encryption.jar");System.out.println("success");}
}

运行方法得到加密后的jar 以及一个xjar.go文件,如下图

  • window环境下cmd进入文件路径下执行,go build xjar.go ,会生成一个xjar.exe 文件

运行,xjar java -jar 项目名.jar

如上图 可以正常访问,此时拿到加密后的jar包通过反编译工具或者idea是无法打开的。


  • Linux环境同理,编译环境需要go环境,将加密后的jar上传到指定目录,go编译xjar.go此时生成的就不是.exe文件,而实一个xjar,运行同理,文件目录下 ./xjar java -jar 项目名.jar ,详情下图

目录结构

执行的sh

执行结果

访问

至此结束

Java jar包加密相关推荐

  1. Jar包加密,防止反编译

    Jar包加密,防止反编译方法 XJar加密工具 XJar功能特性 使用方法(手动执行方式) 使用方法(Maven插件方式) exe4j加密工具 使用方法 jvmti加密工具 使用方法 参考 XJar加 ...

  2. xjar 对Spring-Boot JAR 包加密运行工具

    Xjar 介绍 Spring Boot JAR 安全加密运行工具,同时支持的原生JAR. 基于对JAR包内资源的加密以及拓展ClassLoader来构建的一套程序加密启动,动态解密运行的方案,避免源码 ...

  3. linux 测试环境启用jar_Linux下用java -jar运行可执行jar包的方法教程

    问题来源 一般来说,一个稍微大些的项目都会有一些依赖的Jar包,而在将项目部署到服务器的过程中,如果没有持续集成环境的话,也就是说服务器不支持在线编译及打包,那么需要自己上传依赖的Jar包,然而可能服 ...

  4. java file 其他电脑上,java - Jar文件无法在另一台PC上执行

    我有一个可编程的jar文件,我从我的程序编译,我在我的电脑上运行它 . 当我在命令提示符下使用 java -jar [nameofjar.jar] 运行它时它完全正常工作 但是,我尝试在另一台电脑上测 ...

  5. 介绍java -cp java -jar的区别

    java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号";" java -cp &am ...

  6. java -cp 和 java -jar 的区别

    目录 java -cp java -jar maven 打包 java -cp java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库.jar 包之类,需要全路径 ...

  7. java -jar 和 -cp详解

    java -jar 和 -cp详解 命令行执行程序 假如我们有一个程序,把它打包成Test.jar,如何运行才能成功输出Hello World package com.test; public cla ...

  8. Java -jar启动服务与Tomcat服务器上部署JAR之间的区别

    运行java web有两种方式:当使用springboot打包出jar包时,这个jar包可以直接 运行java -jar *.jar运行,另一种是把 *.jar移动到tomcat/webapps 中, ...

  9. bat 执行 java jar包

    引用:http://zhidao.baidu.com/question/266935924.html 用eclipse编译好的一个Java项目导出成为一个可以直接双击运行的jar文件. 1.在需要导出 ...

最新文章

  1. 指纹传感器沾水便失效的原因解析
  2. NSNotification消息通知实现源码(观察者模式原理)
  3. pytorch随笔-6
  4. sqlplus 修改system密码_华为交换机console密码忘了如何解决 华为交换机console密码忘了解决方法【介绍】...
  5. How to enable multiple text type for Product
  6. ASP.NET(c#)常用类函数
  7. 需求分析——使用类图建模
  8. latex 学习资料
  9. Acrobat Pro DC 2022 Mac(全能PDF工具)完美兼容m1
  10. Latex beamer制作ppt
  11. 成都链安科技CEO 创始人杨霞:解决智能合约的安全问题,形式化验证是个“利器”!
  12. 摄影测量空间后方交会python实现
  13. 华三交换机基本配置命令
  14. 服务器文件怎么清理,文件传输服务器怎么清理内存
  15. 服务器显示404什么意思,404是什么意思?
  16. CDH环境HDFS权限问题
  17. 京东云鼎服务器系统时间问题-时间戳参与与服务器时间差异大于设定值
  18. 机器指令程序编写方法
  19. 医疗卫生信息化领域的一些术语和标准
  20. Hadoop的数据压缩

热门文章

  1. AcWing 1874. 哞加密(枚举,哈希)
  2. [分布式][高并发]热点缓存的架构优化
  3. 儿童流鼻血4情况请就医 原因与正确止血步骤必知
  4. vue父子组件通信方式
  5. iOS App提交被拒理由分享汇
  6. 暑假到了,是一个旅游旺季,用 PHP 爬虫做旅游数据分析,让我们更好的外出旅行吧!
  7. 极兔速递快递批量查询工具箱
  8. 极客学院 Docker全面解读零基础实战(45章节)
  9. html5基础知识第一章语法
  10. 判断整数序列是否是二叉查找树的后序遍历