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

简介: =========================================================================================================================后文心得附录:【实际操作使用过程中的使用心得】  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完成了!!!!

 

相关文章
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
1392 2
|
安全 Java 编译器
JDK 10中的局部变量类型推断:Java编程的简化与革新
JDK 10引入的局部变量类型推断通过`var`关键字简化了代码编写,提高了可读性。编译器根据初始化表达式自动推断变量类型,减少了冗长的类型声明。虽然带来了诸多优点,但也有一些限制,如只能用于局部变量声明,并需立即初始化。这一特性使Java更接近动态类型语言,增强了灵活性和易用性。
460 53
课时103:生成jar文件
本文介绍了Java中生成和使用JAR文件的基本概念与操作。JAR文件用于将多个类文件打包成一个压缩文件,便于管理和分发。通过JDK提供的`jar`命令可以创建JAR文件,并可通过设置CLASSPATH环境变量来配置和使用这些文件。文中还演示了如何定义、编译和打包一个简单的Java程序为JAR文件,并详细解释了JAR文件的结构及配置方法。此外,简要提及了JDK 1.9后引入的模块化系统对JAR文件的影响。
553 1
|
Java 开发者
修改JAR文件工具
本文介绍了一款名为JarEditor的IDEA插件,该插件允许用户直接对JAR包内的文件进行增删改查操作,无需先行解压。通过简单的安装与使用步骤,大大简化了传统上需要解压缩、反编译、重新编译及打包的过程。此外,JarEditor还支持对混淆过的JAR文件进行字节码级别的修改,并提供了强大的搜索功能,支持大小写、全词匹配和正则表达式搜索。对于开发者而言,这款插件无疑极大提高了处理JAR文件的效率和便捷性。
1797 14
|
数据采集 分布式计算 Java
Kettle的Java开发环境需要什么jar包?
【10月更文挑战第24天】Kettle的Java开发环境需要什么jar包?
654 2
|
Java
让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)
本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。
239 1
|
安全 Java API
【性能与安全的双重飞跃】JDK 22外部函数与内存API:JNI的继任者,引领Java新潮流!
【9月更文挑战第7天】JDK 22外部函数与内存API的发布,标志着Java在性能与安全性方面实现了双重飞跃。作为JNI的继任者,这一新特性不仅简化了Java与本地代码的交互过程,还提升了程序的性能和安全性。我们有理由相信,在外部函数与内存API的引领下,Java将开启一个全新的编程时代,为开发者们带来更加高效、更加安全的编程体验。让我们共同期待Java在未来的辉煌成就!
498 11
|
Java Windows
如何在windows上运行jar包/JAR文件 如何在cmd上运行 jar包 保姆级教程 超详细
本文提供了一个详细的教程,解释了如何在Windows操作系统的命令提示符(cmd)中运行JAR文件。
13518 1
|
Oracle Java 关系型数据库
【颠覆性升级】JDK 22:超级构造器与区域锁,重塑Java编程的两大基石!
【9月更文挑战第6天】JDK 22的发布标志着Java编程语言在性能和灵活性方面迈出了重要的一步。超级构造器和区域锁这两大基石的引入,不仅简化了代码设计,提高了开发效率,还优化了垃圾收集器的性能,降低了应用延迟。这些改进不仅展示了Oracle在Java生态系统中的持续改进和创新精神,也为广大Java开发者提供了更多的可能性和便利。我们有理由相信,在未来的Java编程中,这些新特性将发挥越来越重要的作用,推动Java技术不断向前发展。
|
监控 Java 大数据
【Java内存管理新突破】JDK 22:细粒度内存管理API,精准控制每一块内存!
【9月更文挑战第9天】虽然目前JDK 22的确切内容尚未公布,但我们可以根据Java语言的发展趋势和社区的需求,预测细粒度内存管理API可能成为未来Java内存管理领域的新突破。这套API将为开发者提供前所未有的内存控制能力,助力Java应用在更多领域发挥更大作用。我们期待JDK 22的发布,期待Java语言在内存管理领域的持续创新和发展。