IDEA打包成可執行jar包(結合swing作一個小工具)

1、如何打包一個 可執行的jar包
file--project structure--artifacts--"+"---jar--frommodules with dependenciesjava

選擇本身的模塊,而後選擇對應含有main函數的類ide

 

若是首次設置 這裏選擇idea所在的目錄函數

 

打包工具


 

打包好的jar包通常默認放在項目底下會多一個out的文件夾佈局

 

 

demo 
用java swing作一個解密的小工具
package com.swing.decipher.Controller;
 
import com.swing.decipher.utils.DesUtil;
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Base64;
 
public class demo {
    private static JFrame frame;
    private static  JTextField userText;
 
    private static JButton loginButton;
    public static void main(String[] args) {
        // 建立 JFrame 實例
        frame = new JFrame("產研解密工具");
        // Setting the width and height of frame
        frame.setSize(450, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        /* 建立面板,這個相似於 HTML 的 div 標籤
         * 咱們能夠建立多個面板並在 JFrame 中指定位置
         * 面板中咱們能夠添加文本字段,按鈕及其餘組件。
         */
        JPanel panel = new JPanel();
        // 添加面板
        frame.add(panel);
        /*
         * 調用用戶定義的方法並添加組件到面板
         */
        placeComponents(panel);
 
        // 設置界面可見
        frame.setVisible(true);
 
        //設置窗體打開在電腦屏幕居中
        int windowWidth = frame.getWidth(); //得到窗口寬
        int windowHeight = frame.getHeight(); //得到窗口高
        Toolkit kit = Toolkit.getDefaultToolkit(); //定義工具包
        Dimension screenSize = kit.getScreenSize(); //獲取屏幕的尺寸
        int screenWidth = screenSize.width; //獲取屏幕的寬
        int screenHeight = screenSize.height; //獲取屏幕的高
        frame.setLocation(screenWidth/2-windowWidth/2, screenHeight/2-windowHeight/2);//設置窗口居中顯示
    }
 
    private static class Button1Handler implements ActionListener {
        public void actionPerformed(ActionEvent e) {
 
    //本身對應的按鈕事件
            //String content = "muhc5/A40WhZWV6CmjUpSOXz2SJlrvQzhxR45zTNNAkC7Y6uVRNGBfrZguONVEcSc1ticOHSnYmjNuLH8bvBugy9CTm5Qykw6Mi+MD7AJPnwXkJGFzfZdL1mC2j9v6H6qQvDt6N5A1xyII0z0QgrVw==";
            String content=userText.getText();
            try {
                byte[] bytes = Base64.getDecoder().decode(content);
                String contentJson = DesUtil.decoderDesOfByte("本身解密對應的key", bytes);
                System.out.println(contentJson);
                if(contentJson==null){
                    JOptionPane.showMessageDialog(frame, "不是正確的加密串");
                }else {
                    JOptionPane.showMessageDialog(frame, contentJson);
                }
            }catch (Exception e1){
                JOptionPane.showMessageDialog(frame, "不是正確的加密串");
            }
        }
    }
 
    //清空按鈕的監聽事件
    private static class cleanButtonHandler implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            userText.setText("");
        }
    }
 
    private static void placeComponents(JPanel panel) {
 
        /* 佈局部分咱們這邊很少作介紹
         * 這邊設置佈局爲 null
         */
        panel.setLayout(null);
 
        // 建立 JLabel
        JLabel userLabel = new JLabel("字符串:");
        /* 這個方法定義了組件的位置。
         * setBounds(x, y, width, height)
         * x 和 y 指定左上角的新位置,由 width 和 height 指定新的大小。
         */
        userLabel.setBounds(10,20,65,25);
        panel.add(userLabel);
 
        /*
         * 建立文本域用於用戶輸入
         */
        userText = new JTextField(20);
        userText.setBounds(100,20,300,25);
        panel.add(userText);
 
 
        // 建立破解按鈕
        loginButton = new JButton("破解");
        loginButton.setBounds(10, 80, 80, 25);
        loginButton.addActionListener(new demo.Button1Handler());
        panel.add(loginButton);
 
        //建立清空按鈕
        JButton cleanButton = new JButton("清空");
        cleanButton.setBounds(100, 80, 80, 25);
        cleanButton.addActionListener(new demo.cleanButtonHandler());
        panel.add(cleanButton);
    }
 
}
關於des解密中用到的工具類詳見另外一篇博客  https://blog.csdn.net/m0_38121868/article/details/84284699
--------------------- 
做者:蘇一念 
來源:CSDN 
原文:https://blog.csdn.net/m0_38121868/article/details/84283734 
版權聲明:本文爲博主原創文章,轉載請附上博文連接!加密

相關文章
相關標籤/搜索