【问题标题】:Making an executable jar file制作可执行的jar文件
【发布时间】:2016-07-23 00:50:26
【问题描述】:

这是我的程序,它运行良好,但一旦我将其放入 jar 中就无法打开。

以及将其制作成 .jar 文件的命令;

jar -cvfm chat.jar manifest.txt client.class

我的程序很好,我的清单完全是应该的 sooooooo.....idk 请

帮助。我制作的所有其他程序都会变成一个工作 .jar,但不是这个。

class client {

    public static Socket    s;
    public static JTextArea jta;
    public static String    server;
    public static String    name;

    public static void main(String args[]) throws Exception {

        Thread t = new Thread(new Runnable() {

            public void run() {
                try {
                    s = new Socket(server, 9000);
                    DataInputStream dis = new DataInputStream(s.getInputStream());
                    String str;
                    while ((str = dis.readUTF()) != null) {
                        jta.append(str + "\n");
                    }
                } catch (Exception e1) {
                }
            }
        });

        JFrame j = new JFrame("Test");
        j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        j.setVisible(true);

        jta = new JTextArea();
        JScrollPane jsp = new JScrollPane(jta);
        j.add(jsp);

        JTextField jtf = new JTextField();
        jtf.setFont(new Font("", Font.BOLD, 14));
        j.add(jtf, BorderLayout.SOUTH);

        JPanel jp = new JPanel();
        jp.add(new JLabel("Name:"));
        JTextField jtfN = new JTextField();
        jtfN.setPreferredSize(new Dimension(180, 20));
        jp.add(jtfN);

        jp.add(new JLabel("Server:"));
        JTextField jtfS = new JTextField();
        jtfS.setPreferredSize(new Dimension(180, 20));
        jp.add(jtfS);
        int jop = JOptionPane.showConfirmDialog(null, jp, "Enter Username and Server.", JOptionPane.OK_CANCEL_OPTION);
        if (jop == 0) {
            name = jtfN.getText();
            server = jtfS.getText();
            t.start();
        }

        jtf.addKeyListener(new KeyListener() {

            public void keyTyped(KeyEvent e) {

            }

            public void keyPressed(KeyEvent e) {

            }

            public void keyReleased(KeyEvent e) {
                if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                    try {
                        String data = name + ": " + jtf.getText();
                        DataOutputStream dos = new DataOutputStream(s.getOutputStream());
                        dos.writeUTF(data);
                        jta.append(data + "\n");
                        jtf.setText("");
                    } catch (Exception e1) {
                    }
                }
            }
        });

        ///////////////////////
        j.getContentPane().setPreferredSize(new Dimension(800, 500));
        j.pack();
        j.setLocationRelativeTo(null);

    }
}

【问题讨论】:

  • 您使用的是哪个 IDE?
  • 我只是命令提示符和 Notepad++。

标签: java jar executable


【解决方案1】:

从 .java 文件制作 .jar 文件

  1. 首先确保您的文件名和类名相同。 “client.java”,其中类是客户端
  2. 现在创建一个 manifest.txt 文件。并写下这个

    主类:Your_Main_Class_name

    在你的情况下是

    主类:客户端

    现在保存文件

  3. 确保您的两个文件(.java 和 manifest.txt)位于同一目录中

  4. 打开命令提示符
  5. 转到保存 .java 和 manifest.txt 文件的文件夹。使用命令

    cd your_path

  6. 现在使用命令编译你的 .java 文件

    javac 客户端.java

  7. 现在您在同一个文件夹中有 client.class 文件

  8. 现在使用这个命令制作 .jar 文件

    jar cfn client.jar manifest.txt client.class

  9. 现在您的 client.jar 文件已在同一目录中创建

  10. 要运行 .jar 文件,请使用此命令

    java -jar client.jar

【讨论】:

    猜你喜欢
    • 2011-07-12
    • 1970-01-01
    • 2014-09-20
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    • 2015-04-16
    相关资源
    最近更新 更多