java 加密并打包_【jar】JDK将单个的java文件打包为jar包,并引用到项目中使用【MD5加密】...

=========================================================================================================================

后文心得附录:【实际操作使用过程中的使用心得】

1.对于封装的jar中非提供给外界使用的方法,尽量将其设置为private

2.对于工具类中经常要使用的方法,可以设定为static,这样在使用过程中不用new一个对象再去引用,可以直接使用类名调用,方便高效!!

3.

=========================================================================================================================

有这么一个需求,想要将一个MD5加密的java文件功能类打包为Jar包,可以引入到项目中使用

1.先准备一个java文件

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

packagecom.sxd.util;importsun.misc.BASE64Encoder;importjava.io.UnsupportedEncodingException;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;/*** 天使加密*/

public classAngelEncryption {/*** 主调 方法

*@paramstr

*@return*@throwsUnsupportedEncodingException

*@throwsNoSuchAlgorithmException*/

public String angelKey(String str) throwsUnsupportedEncodingException, NoSuchAlgorithmException {

String newStr= encoderByMd5(str+"Angel's Key");returnnewStr;

}/**利用MD5进行加密

*@paramstr 待加密的字符串

*@return加密后的字符串

*@throwsNoSuchAlgorithmException 没有这种产生消息摘要的算法

*@throwsUnsupportedEncodingException*/

public String encoderByMd5(String str) throwsNoSuchAlgorithmException, UnsupportedEncodingException {//确定计算方法

MessageDigest md5= MessageDigest.getInstance("MD5");

BASE64Encoder base64en= newBASE64Encoder();//加密后的字符串

String newstr=base64en.encode(md5.digest(str.getBytes("utf-8")));returnnewstr;

}

}

View Code

2.将java文件编译为class文件

1》【将java文件按照package的路径位置,放在对应的目录下】

ff8e0036543ff2ff3a7905d16b001ca5.png

2》将java文件编译为class文件【要求已经安装了JDK并且配置了环境变量】

【因为文件格式为UTF-8,所以采用下面注明编码方式编译】

b14d095ccb24fa75293a23dec3f4c710.png

3》编译完成之后的目录下

6c968ef7d563c23ddc3d1502a6da4b0a.png

3.接下来就可以使用jar -cvf进行打包了

1》回退到com.sxd.util的最外层

8378dd4e5c0fd29695944f8cb12d7f04.png

因为在java代码中,最上面的package是如下,所以需要对com层进行打包

8ae0da938d927c823ff45e912b5e6db9.png

2》进入cmd运行打包

6d59a1dc6a17d389faddad4b5b508256.png

3》查看打包出来的jar包以及层级结构

5528482da76a56e3f212b8c8d78315fb.png

05cc7ce6dafb1b10c7fb2d2e0d87a1b8.png

4.现在打包jar包成功了,怎么使用到项目中呢?

1》如果不想将本jar包交给maven管理,那就直接放在项目的lib中,然后build添加进项目的jar包依赖下

【下面的流程是在你已经搭建了maven私服的情况下再看】

流程如下:

1>cmd指定命令如下

mvn deploy:deploy-file -DgroupId=sxd.jar -DartifactId=AngelKey -Dversion=1.1 -Dpackaging=jar -Dfile=G:\test\AngelKey-1.1.jar -Durl=http://localhost:8081/repository/myself_hosted/ -DrepositoryId=myself_hosted

解释说明如下:

5705f673cd48dbab91a21ff52205bd27.png

2>执行上面的命令后效果如下

f5cfe00767d92f6f573bbde196ba9f88.png

daba576dee7caf6816934ef6ff0750c8.png

3>查看本地仓库中的jar包是否上传成功

0591b6838b1c7ffb233e3a63a19e802d.png

4>上面看不到jar包,那在私服中搜索一下【按照Artfact Id查找】

8af84c84190252aa569c7d06329bd054.png

b035948993ab375f56e08e26ddb2a029.png

5>好了,现在在pom.xml文件中引用,在项目中使用该jar包

pom.xml文件引入

sxd.jar

AngelKey

1.1

Test.java中使用

packagecom.agen.util.utils;importcom.sxd.util.AngelEncryption;importorg.junit.jupiter.api.Test;importjava.io.UnsupportedEncodingException;importjava.security.NoSuchAlgorithmException;public classAngelKeyTest {

@Testpublic void test() throwsUnsupportedEncodingException, NoSuchAlgorithmException {

AngelEncryption angelEncryption= newAngelEncryption();

String password= "admin123";

String newStr=angelEncryption.angelKey(password);

System.out.println(newStr);

}

}

可以看到本类的引用路径为

importcom.sxd.util.AngelEncryption;

运行结果:

3fb2319b031dc1dd22da579967ee92b1.png

OK完成了!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个问题可能有多个原因,以下是一些常见的问题和解决方法: 1. 缺少依赖项:在打包 jar 包时,必须将所有依赖项打包jar,否则在运行 jar 包时会抛出 ClassNotFoundException 或 NoClassDefFoundError 异常。解决方法是在打包使用 Maven 或 Gradle 等工具自动处理依赖项,或手动将所有依赖项打包jar。 2. 主类未正确指定:在运行 jar 包时,需要指定 jar的主类。如果未正确指定主类,将会抛出 ClassNotFoundException 异常。解决方法是在打包使用 Maven 或 Gradle 等工具自动指定主类,或手动在 MANIFEST.MF 文件指定主类。 3. 缺少配置文件:如果程序依赖于配置文件,需要将配置文件打包jar,并在程序正确加载配置文件。如果未正确加载配置文件,将会抛出 FileNotFoundException 异常。解决方法是将配置文件打包jar,并在程序使用 ClassLoader.getResourceAsStream() 方法加载配置文件。 4. 版本冲突:如果依赖项的版本与程序使用的版本不匹配,可能会导致程序无法正常运行。解决方法是在打包使用 Maven 或 Gradle 等工具自动处理版本冲突,或手动调整依赖项的版本。 5. 编译不同环境:如果程序在不同的环境下编译,可能会导致运行时出现问题。解决方法是在打包使用与目标环境相同的 JDK 版本,或将程序打包为可执行的 WAR 包,依赖于应用服务器运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值