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


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

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

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

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

      3.

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

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

    1.先准备一个java文件

    package com.sxd.util;
    
    import sun.misc.BASE64Encoder;
    import java.io.UnsupportedEncodingException;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    
    /**
     * 天使加密
     */
    public class AngelEncryption {
    
    
        /**
         * 主调  方法
         * @param str
         * @return
         * @throws UnsupportedEncodingException
         * @throws NoSuchAlgorithmException
         */
        public String angelKey(String str) throws UnsupportedEncodingException, NoSuchAlgorithmException {
            String newStr =  encoderByMd5(str+"Angel's Key");
            return newStr;
        }
    
        /**利用MD5进行加密
         * @param str  待加密的字符串
         * @return  加密后的字符串
         * @throws NoSuchAlgorithmException  没有这种产生消息摘要的算法
         * @throws UnsupportedEncodingException
         */
        public String encoderByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {
            //确定计算方法
            MessageDigest md5= MessageDigest.getInstance("MD5");
            BASE64Encoder base64en = new BASE64Encoder();
            //加密后的字符串
            String newstr=base64en.encode(md5.digest(str.getBytes("utf-8")));
            return newstr;
        }
    
    
    
    }
    View Code

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

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

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

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

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

    【问题:如果javac命令提示不是内部或外部命令,解决方法:https://www.cnblogs.com/sxdcgaq8080/p/11765252.html

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

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

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

      2》进入cmd运行打包

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

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

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

      2》如果想交给maven管理,可以将jar包上传到maven私服上,然后在pom.xml文件中引用【具体参考:http://www.cnblogs.com/sxdcgaq8080/p/7583767.html

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

      流程如下:

        1>cmd指定命令如下

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

    解释说明如下:

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

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

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

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

        pom.xml文件引入

    <!--AngelKey加密-->
            <dependency>
                <groupId>sxd.jar</groupId>
                <artifactId>AngelKey</artifactId>
                <version>1.1</version>
            </dependency>

        Test.java中使用

    package com.agen.util.utils;
    
    
    import com.sxd.util.AngelEncryption;
    import org.junit.jupiter.api.Test;
    
    import java.io.UnsupportedEncodingException;
    import java.security.NoSuchAlgorithmException;
    
    public class AngelKeyTest {
    
        @Test
        public void test() throws UnsupportedEncodingException, NoSuchAlgorithmException {
            AngelEncryption angelEncryption = new AngelEncryption();
            String password = "admin123";
            String newStr = angelEncryption.angelKey(password);
            System.out.println(newStr);
        }
    }

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

    import com.sxd.util.AngelEncryption;

    运行结果:

    OK完成了!!!!

  • 相关阅读:
    【2020-05-17】人生十三信条
    【2020-05-16】评价与骄傲
    【2020-05-15】每天都充满向上的激情
    【04NOIP普及组】火星人(信息学奥赛一本通 1929)(洛谷 1088)
    next_permutation(全排列算法)
    【03NOIP普及组】麦森数(信息学奥赛一本通 1925)(洛谷 1045)
    快速幂
    【03NOIP普及组】栈(信息学奥赛一本通 1924)(洛谷 1044)
    【06NOIP普及组】数列(信息学奥赛一本通 1937)(洛谷 1062)
    【00NOIP普及组】计算器的改良(信息学奥赛一本通 1910)(洛谷 1022)
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/8126770.html
Copyright © 2020-2023  润新知