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

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: =========================================================================================================================后文心得附录:【实际操作使用过程中的使用心得】  1.

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

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

  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》编译完成之后的目录下

 

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:\test\AngelKey-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完成了!!!!

 

相关文章
|
3月前
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
84 2
|
1月前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
116 3
|
1月前
|
数据采集 分布式计算 Java
Kettle的Java开发环境需要什么jar包?
【10月更文挑战第24天】Kettle的Java开发环境需要什么jar包?
122 2
|
3月前
|
Java API 开发者
【Java字节码操控新篇章】JDK 22类文件API预览:解锁Java底层的无限可能!
【9月更文挑战第6天】JDK 22的类文件API为Java开发者们打开了一扇通往Java底层世界的大门。通过这个API,我们可以更加深入地理解Java程序的工作原理,实现更加灵活和强大的功能。虽然目前它还处于预览版阶段,但我们已经可以预见其在未来Java开发中的重要地位。让我们共同期待Java字节码操控新篇章的到来!
|
3月前
|
Java API 开发者
【Java字节码的掌控者】JDK 22类文件API:解锁Java深层次的奥秘,赋能开发者无限可能!
【9月更文挑战第8天】JDK 22类文件API的引入,为Java开发者们打开了一扇通往Java字节码操控新世界的大门。通过这个API,我们可以更加深入地理解Java程序的底层行为,实现更加高效、可靠和创新的Java应用。虽然目前它还处于预览版阶段,但我们已经可以预见其在未来Java开发中的重要地位。让我们共同期待Java字节码操控新篇章的到来,并积极探索类文件API带来的无限可能!
|
4月前
|
Java Maven C++
【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
|
4月前
|
Java Spring
【Azure 应用服务】一个 App Service 同时部署运行两个及多个 Java 应用程序(Jar包)
【Azure 应用服务】一个 App Service 同时部署运行两个及多个 Java 应用程序(Jar包)
|
4月前
|
前端开发 JavaScript Java
【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
|
20天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
21天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
43 10