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. python编程单词排序_python 统计单词个数,并按个数与字母排序
  2. wdns服务器未响应,Win7系统​网络诊断提示DNS服务器未响应的解决方法
  3. android 弹出对话框时显示键盘
  4. JavaWeb项目前端规范(采用命名空间使js深度解耦合)
  5. Android 性能优化提示
  6. @ta,一起过节吧!
  7. 在计算机科学中算法指的是,算法 - 为什么斐波纳契数在计算机科学中具有重要意义?...
  8. ks.cfg配置详解
  9. latex中嵌入视频文件
  10. python snap7 plc_python-snap7-master
  11. SQLyog客户端使用教程
  12. 搭建p2p文件服务器,p2p服务器搭建
  13. 第五套人民币是大众收藏的机会
  14. idea--Preferences
  15. Gitlab如何创建项目和添加成员
  16. JavaScript【树】
  17. 滤波电容为什么要靠近放置,储能电容为什么均匀放置?去耦半径是什么?滤波电容如何打孔?
  18. php isset()和empty()的使用区别
  19. dfs与bsf问题合集
  20. python的mag模块_Python Decimal max_mag()用法及代码示例

热门文章

  1. java修饰符总结,关于Java中修饰符的总结(fina除外)
  2. 【个人开发】通过SQLite获取微信聊天记录
  3. C#控件及常用设计整
  4. oracle新建数据库卡85,oracle数据库(新建数据库)超小白篇
  5. Android反编译软件(附图详细教程)
  6. 数据库的安装、授权和远程连接
  7. java穷举法找素数,使用穷举法输出100以内所有素数
  8. 这些计算机基础知识必须掌握(清单)
  9. 自定义配置文件(五)
  10. 【生活】小绿电车,慢着点儿