2016-07-23 30 views
1

這是我的程序,它工作正常,但不會打開,一旦我把它變成一個罐子。製作一個可執行的jar文件

以及使其成爲.jar文件的命令;

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

我的計劃是好的,我的表現是完全一樣的,應soooooo ..... 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); 

    } 
} 
+0

您正在使用哪個IDE? –

+0

我只是命令提示符和Notepad ++。 – EchoCode

回答

2

從java文件

  1. 首先製作.jar文件,確保您的文件名和類名相同。 「client.java」,其中class是客戶端
  2. 現在創建一個manifest.txt文件。寫這個

    主類:Your_Main_Class_name

    在你的情況下,它是

    主類:客戶

    現在保存文件

  3. 請確保您的文件( .java和manifest.txt)

  4. 打開命令提示符
  5. 轉到您保存.java和manifest.txt文件的文件夾。使用命令

    CD your_path

  6. 現在用命令編譯java文件

    的javac client.java

  7. 現在你對client.class文件相同的文件夾

  8. 現在做.jar文件,使用這個命令

    罐子CFN client.jar中manifest.txt client.class

  9. 現在是在同一目錄中創建您的client.jar的文件

  10. 使用此命令運行.jar文件

    java -jar客戶端。罐子

相關問題