[問題] 用Eclipse輸出jar的問題

看板java作者 (七把鑰匙的主人)時間16年前 (2009/07/16 11:25), 編輯推噓3(304)
留言7則, 4人參與, 最新討論串1/1
我寫了一個小小的寄email的程式然後發現在Eclipse裡直接執行的時候一切正常。 但是只要匯出成jar的時候就發現執行會停在某一行addActionListener下。 而且我有加上try&catch在這一行的前後發現執行的時候停在這一行也沒有出現 任何的exception,加上其他所有的addActionListener也都沒有異常,所以完全 不知道是怎麼一回事@@" 麻煩各位大大幫忙~感恩! 相關程式碼如下: ... JButton sendB = new JButton("Send"); ... public void addons_2() { ... //停在這一行 sendB.addActionListener(new SendMail()); ... } //Send E-mails (inner class) private class SendMail implements ActionListener { public void actionPerformed(ActionEvent e) { //A String for setting a SSL Encrypted transmission final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; //Various setting for an e-mail trasmission session Properties pts = new Properties(); //Set the address of an SMTP server pts.put("mail.smtp.host", smtpHost); //SMTP server always requires authentication pts.put("mail.smtp.auth", "true"); //Set the port of the SMTP server pts.setProperty("mail.smtp.port", smtpPort); //Set the encoding format of the data transmission as Unicode-8 pts.setProperty("mail.mime.charset", "UTF-8"); //If users decide to use SSL Encrypted transmission if(SSL==true) { //Set SSL pts.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY); } //Add all above properties into a session Session s = Session.getDefaultInstance(pts, null); try { //Set the transmission type of the session as SMTP Transport trans = s.getTransport("smtp"); //Connect to the SMTP server with the address, username //and password trans.connect(smtpHost, username, password); //Cyclically send each e-mail with different attachments for(int loopa=0;loopa<toMail.length;loopa++) { //Create the e-mail MimeMessage mail = new MimeMessage(s); //Create the multipart of the email Multipart mpt = new MimeMultipart(); //Create a body part of the multipart MimeBodyPart mbody = new MimeBodyPart(); //Load the attachment DataSource source = new FileDataSource(attachTF[loopa].getText()); //Set the FROM address of the e-mail mail.setFrom(new InternetAddress(fromMail)); //Set the title of the e-mail mail.setSubject(titleS); //Set the send-date of the e-mail mail.setSentDate(new Date()); //Set the content to a mail body mbody.setText(textS); //Add the mail body of the content as one of //the e-mail's multipart mpt.addBodyPart(mbody); //Create another body part mbody = new MimeBodyPart(); //Set the attachment to this body part mbody.setDataHandler(new DataHandler(source)); //Attach the filename to this body part (Optional?) mbody.setFileName(attachTF[loopa].getText()); //Add the body part of the attachment as another one of the mpt.addBodyPart(mbody); //Set the TO address of the e-mail mail.setRecipients(Message.RecipientType.TO, toMail[loopa]); //Add the multipart into the e-mail mail.setContent(mpt); //Set the REAL(?) address for the transmission InternetAddress[] address = { new InternetAddress(toMail[loopa]) }; //Send the e-mail trans.sendMessage(mail, address); } //Close the connection with the SMTP server trans.close(); //Close the window processWindowEvent(new WindowEvent(new JavaMail(),WindowEvent.WINDOW_CLOSING)); //Show a message of the successful transmission JOptionPane.showMessageDialog(null, "E-mails are sent normally.", "Transmission Complete", JOptionPane.INFORMATION_MESSAGE); } //If unfortunately there's an Exception during the transmission catch(Exception ex) { //Show why there's an exception JOptionPane.showMessageDialog(null, ex + "(If you don't understand this message, report to us)", "Mailing failed", JOptionPane.ERROR_MESSAGE); } } } -- 你來到了天母棒球場,這裡正在進行一場棒球比賽。場上球員似乎火氣很大呢! (上火) 林岳平 (Lin Yue-Ping) (閃光) 馮勝賢 (Feng Sheng-Xien) [生命:86 精神:1079 體力:48]: throw Feng ball 你把一顆球丟到 馮勝賢 (Feng Sheng-xien)身上了! 你被傳送到了法庭裡!你一臉的茫然… -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.180.200 ※ 編輯: KeeperOf7Key 來自: 123.204.180.200 (07/16 11:25)

07/16 12:33, , 1F
SendMail 的細節咧.... @_@
07/16 12:33, 1F
補落落長SendMail的細節…麻煩了<(_ _)>

07/16 13:40, , 2F
會不會是缺函式??
07/16 13:40, 2F
另外補充就是用過winRAR開過包起來的jar有確定inner class的編譯檔也有包進去… ※ 編輯: KeeperOf7Key 來自: 123.204.180.214 (07/16 16:26) ※ 編輯: KeeperOf7Key 來自: 123.204.180.214 (07/16 16:30)

07/16 17:33, , 3F
理論上應該沒有缺 3rd class,有 exception 也會有反應..
07/16 17:33, 3F

07/16 17:34, , 4F
只一行行卡 out.print(),先抓死在那一行了 (好弱 Orz)
07/16 17:34, 4F

07/16 17:36, , 5F
等等,那個 javax.net.ssl.SSLSocketFactory 真的有嗎?
07/16 17:36, 5F
不過我抓是跑到addons_2裡那一行addActionListener就停住了(後面還有validate();) 照理來說應該也還沒用到SendMail裡的任何一條碼說(還沒有按sendB呀…)…orz 另外"javax.net.ssl.SSLSocketFactory"我也不知道~還沒測到這邊XDrz ※ 編輯: KeeperOf7Key 來自: 123.204.180.214 (07/16 20:24)

07/17 16:57, , 6F
我視覺得你應該要先檢查sendMail的建構子..
07/17 16:57, 6F

07/19 00:35, , 7F
但是我SendMail沒有寫建構子呀…
07/19 00:35, 7F
文章代碼(AID): #1ANfsNzb (java)