命令行生成jar包,并运行

jar   -cfe    except.jar     except.ExceptTest      except

说明:jar是命令

-cfe 是选项

-c, --create 创建档案

-f, --file=FILE 档案文件名。省略时, 基于操作使用 stdin 或 stdout

-e, --main-class=CLASSNAME 捆绑到模块化或可执行jar 档案的独立应用程序的应用程序入口点

except.jar是创建的jar包名字

except.ExceptTest是程序主入口

except是目录

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

代码如下:

package except;

import java.awt.EventQueue;
import java.awt.event.*;
import java.io.*;
import java.nio.file.*;
import java.util.*;
import javax.swing.*;

/**
 * @version 1.34 2015-08-20
 * @author Cay Horstmann
 */
public class ExceptTest {
    public static void main(String[] args) {
        EventQueue.invokeLater(() -> {
            JFrame frame = new ExceptTestFrame();
            frame.setTitle("ExceptTest");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        });
    }
}

/**
 * A frame with a panel for testing various exceptions
 */
class ExceptTestFrame extends JFrame {
    public ExceptTestFrame() {
        ExceptTestPanel panel = new ExceptTestPanel();
        add(panel);
        pack();
    }
}

/**
 * A panel with radio buttons for running code snippets and studying their exception behavior
 */
class ExceptTestPanel extends Box {
    private ButtonGroup group;
    private JTextField textField;
    private double[] a = new double[10];

    public ExceptTestPanel() {
        super(BoxLayout.Y_AXIS);
        group = new ButtonGroup();

        // add radio buttons for code snippets

        addRadioButton("Integer divide by zero", new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                a[1] = 1 / (a.length - a.length);
            }
        });

        addRadioButton("Floating point divide by zero", new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                a[1] = a[2] / (a[3] - a[3]);
            }
        });

        addRadioButton("Array bounds", new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                a[1] = a[10];
            }
        });

        addRadioButton("Bad cast", new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                a = (double[]) event.getSource();
            }
        });

        addRadioButton("Null pointer", new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                System.out.println(textField.getAction().toString());
            }
        });

        addRadioButton("sqrt(-1)", new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                a[1] = Math.sqrt(-1);
            }
        });

        addRadioButton("Overflow", new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                a[1] = 1000 * 1000 * 1000 * 1000;
                int n = (int) a[1];
                System.out.println(n);
            }
        });

        addRadioButton("No such file", new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                try {
                    System.out.println(
                        new Scanner(Paths.get("woozle.txt"), "UTF-8").next());
                } catch (IOException e) {
                    textField.setText(e.toString());
                }
            }
        });

        addRadioButton("Throw unknown", new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                throw new UnknownError();
            }
        });

        // add the text field for exception display
        textField = new JTextField(30);
        add(textField);
    }

    /**
     * Adds a radio button with a given listener to the panel. Traps any exceptions in the
     * actionPerformed method of the listener.
     * @param s the label of the radio button
     * @param listener the action listener for the radio button
     */
    private void addRadioButton(String s, ActionListener listener) {
        JRadioButton button = new JRadioButton(s, false) {
            // the button calls this method to fire an
            // action event. We override it to trap exceptions
            protected void fireActionPerformed(ActionEvent event) {
                try {
                    textField.setText("No exception");
                    super.fireActionPerformed(event);
                } catch (Exception e) {
                    textField.setText(e.toString());
                }
            }
        };

        button.addActionListener(listener);
        add(button);
        group.add(button);
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值