授权工具开发

开发一个授权工具
一、需求

开发一个用于授权的小工具,由于项目部署需要进行授权,生成授权文件的代码是一个main方法,所以有这么一个需求,要把授权的功能做成一个授权工具,以后移交给实施人员进行授权,因此需要开发一个授权工具

二、设计思路

本人熟悉java语言,并且授权功能是基于java开发的,所以我们需要利用java的awt功能开发一个授权界面,并且将授权功能迁移到该项目中即可

三、项目搭建
1、创建一个java项目

在这里插入图片描述
在这里插入图片描述

2、构建artifacts

在这里插入图片描述
在这里插入图片描述

3、打包

在这里插入图片描述
在这里插入图片描述

四、核心代码
package com.superred.th.license.active;


import com.superred.th.license.LicGen;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @author hdqzz
 */
public class ToolFrame extends JFrame implements ActionListener {
    private static final long serialVersionUID = -1L;
    private static final int WIDTH = 800;
    private static final int HEIGHT = 600;
    private StringBuffer helpMessage = new StringBuffer()
            .append("操作步骤.\n")
            .append("1. 填写机器码\n")
            .append("2. 修改授权日志如下2024-12-31\n")
            .append("3. 点击按钮生成授权码\n")
            .append("4. 点击Tool中生成授权文件按钮生成授权文件\n\n");


    /**
     * 定义输入框字段
     *
     **/
    JTextField tfSystemId = new JTextField();
    JTextField tfExpireTime = new JTextField();
    JTextField tfActivationCode = new JTextField();

    /**
     * 定义按钮和菜单按钮
     **/
    JButton jbActive = new JButton("生成授权码");
    JTextArea taInfo = new JTextArea(helpMessage.toString());

    JMenuItem runMenu = new JMenuItem("生成授权码");
    JMenuItem saveProperitiesMenu = new JMenuItem("保存License");
    JMenuItem exitMenu = new JMenuItem("Exit");


    private String lastLicenseData = null;

    /**
     * 创建授权工具框架
     * @Author zxy
     * @Date 17:43 2023/3/8
     * @return
     **/
    public ToolFrame() {
        super("授权工具");
        initFrame();
        setDefaultCloseOperation(3);
        setSize(800, 600);
        setVisible(true);
    }

    /**
     * 初始化菜单上部授权区域和下部中心区域
     * @Author zxy
     * @Date 17:43 2023/3/8
     * @return void
     **/
    public void initFrame() {
        initMenu();
        initTopPanel();
        initCenterPanel();
    }

    /**
     * 组装菜单列表Operate和Tools菜单列表
     * @Author zxy
     * @Date 17:44 2023/3/8
     * @return void
     **/
    public void initMenu() {
        JMenuBar menubar = new JMenuBar();

        JMenu menu1 = new JMenu("Operate");
        JMenu menu2 = new JMenu("Tools");

        menu1.add(runMenu);
        menu1.addSeparator();
        menu1.add(exitMenu);

        menu2.add(this.saveProperitiesMenu);

        runMenu.addActionListener(this);
        exitMenu.addActionListener(this);
        saveProperitiesMenu.addActionListener(this);

        menubar.add(menu1);
        menubar.add(menu2);

        setJMenuBar(menubar);
    }

    public void initCenterPanel() {
        JScrollPane jsp = new JScrollPane(this.taInfo);
        jsp.setBounds(100, 190, 400, 300);
        getContentPane().add(jsp, "Center");
    }

    public void initTopPanel() {
        JPanel toppanel = new JPanel();
        toppanel.setLayout(null);
        JLabel lSystemId = new JLabel("机器编码:", 4);
        JLabel lExpireTime = new JLabel("授权期限:", 4);
        JLabel lActivationCode = new JLabel("生成授权码:", 4);


        lSystemId.setBounds(10, 50, 85, 25);
        tfSystemId.setBounds(100, 50, 300, 30);

        lExpireTime.setBounds(10, 90, 85, 25);
        tfExpireTime.setBounds(100, 90, 300, 30);
        tfExpireTime.setText("2024-12-31");


        lActivationCode.setBounds(10, 130, 85, 25);
        tfActivationCode.setBounds(100, 130, 300, 30);
        jbActive.setBounds(410, 130, 120, 30);

        jbActive.addActionListener(this);

        toppanel.add(lSystemId);
        toppanel.add(tfSystemId);

        toppanel.add(lExpireTime);
        toppanel.add(tfExpireTime);


        toppanel.add(lActivationCode);
        toppanel.add(tfActivationCode);
        toppanel.add(jbActive);

        JPanel tmpPanel = new JPanel();
        tmpPanel.add(toppanel, "Center");

        toppanel.setPreferredSize(new Dimension(600, 240));
        getContentPane().add(tmpPanel, "North");
    }

    /**
     * ActionListener监听器处理方法,用于处理不同按钮触发的监听方法
     * @Author zxy
     * @Date 17:47 2023/3/8
     * @param paramActionEvent 
     * @return void 
     **/
    @Override
    public void actionPerformed(ActionEvent paramActionEvent) {
        Object source = paramActionEvent.getSource();

        if ((source == this.jbActive) || (source == this.runMenu)) {
            /**
             * 生成授权码
             **/
            try {
                taInfo.append("机器编码:" + tfSystemId.getText().trim() + "\n");
                taInfo.append("授权期限:" + tfExpireTime.getText().trim() + "\n");
                String activeCode = LicGen.genLicStr(tfExpireTime.getText().trim(), tfSystemId.getText().trim());
                tfActivationCode.setText(activeCode == null ? "--" : activeCode);
                taInfo.append("机器编码:" + tfSystemId.getText().trim() + "\n");
                taInfo.append("授权期限:" + tfExpireTime.getText().trim() + "\n");
                taInfo.append("授权码:" + activeCode + "\n");
            } catch (Exception e) {
                e.printStackTrace();
            }

        } else if (source == saveProperitiesMenu) {
            /**
             *  生成授权文件
             **/
            try {
                String licPath = LicGen.genLic("C:\\license\\", tfExpireTime.getText().trim(), tfSystemId.getText().trim());
                taInfo.append("机器编码:" + tfSystemId.getText().trim() + "\n");
                taInfo.append("授权期限:" + tfExpireTime.getText().trim() + "\n");
                taInfo.append("授权文件路径:" + licPath + "\n");
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else if (source == exitMenu) {
            /**
             * 退出功能
             **/
            System.exit(0);
        }
    }

    public static void main(String[] args) throws Exception {
        UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        new ToolFrame();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
,包含授权服务和开放平台 Docker 镜像,基于 Spring Boot Starter 的资源服务工具包和客户端(第三方应用)工具开发工具在软件开发生命周期中扮演着至关重要的角色,它们旨在简化和加速从概念设计到产品部署的各个环节。以下是开发工具的主要作用: 代码编写与编辑: 提供集成开发环境(IDE),如Visual Studio、Eclipse、Android Studio和Sublime Text等,这些工具集成了文本编辑器,支持语法高亮、自动补全、代码片段管理和版本控制等功能,有助于开发者高效编写和维护代码。 项目管理: 支持项目创建、组织、构建自动化以及依赖管理,确保不同模块和组件之间的协调一致。 编译与构建: 包括编译器、构建工具(如Make、Gradle、Maven)等,用于将源代码转换为可执行文件或库,并进行资源打包、优化等处理。 调试与测试: 集成调试器允许开发者逐行执行代码,设置断点、查看变量值、跟踪调用堆栈等,帮助定位并修复代码中的错误。 测试框架和工具则协助开发者编写和运行单元测试、集成测试及性能测试,确保软件质量。 版本控制与协作: 通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序界面模型,并生成规范的设计稿供开发人员参考实现。 跨平台支持: 跨平台开发工具如Xamarin、React Native和Flutter,让开发者使用一种语言或框架编写可以在多个操作系统上运行的应用程序。 文档编写与API管理: 文档生成工具可以自动生成代码注释文档,便于团队内外理解和使用项目代码。 API管理工具则方便开发者创建、测试、发布和维护API接口。 持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM(对象关系映射)工具简化了数据操作和持久化层的开发工作。 总之,开发工具极大地提升了软件工程师的工作效率,保证了开发过程中的准确性与一致性,同时也促进了团队合作,使得软件开发更系统化、规范化和工业化。
AB授权是指Android编程中的一种授权方式,其中“AB”代表“A/B Testing”,即A和B两种不同的版本,通过对比这两个版本的表现来评估其优劣并做出决策。AB授权通常用于软件开发中,以便能够比较不同设计、功能、布局或其他元素的效果,从而优化用户体验和功能表现。 为了实施AB授权开发人员可以使用一些工具包。工具包是一组工具和资源的集合,旨在促进AB授权开发和实施。在Android编程中,我们可以使用各种工具包来进行AB授权开发和管理。 要下载AB授权工具包,我们可以通过以下步骤进行: 1. 首先,我们需要确定所需的工具包的类型和版本。可以在相关的开发文档、网站或社区中查找并选择适合我们需求的工具包。 2. 一旦确定了工具包,我们可以通过搜索引擎或者相应开发者平台的资源库来查找和获取该工具包的下载链接。 3. 然后,我们可以点击下载链接,将工具包下载到我们的计算机上。通常,这些工具包会以ZIP或JAR等常见的压缩文件格式提供。 4. 下载完成后,我们需要将工具包解压缩到我们想要的目录中。可以选择一个方便和易于访问的位置,例如我们的开发环境的工程目录。 5. 最后,在我们的项目中,我们可以添加引用或依赖,以将下载的工具包与我们的代码进行关联。这可以通过在项目中的构建路径或依赖管理工具中添加相应的引用或依赖来完成。 通过以上步骤,我们可以成功地下载并准备使用AB授权工具包。这样,我们就可以开始使用AB授权的功能来开发和优化我们的Android应用程序了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值