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
版權聲明:本文爲博主原創文章,轉載請附上博文連接!加密