[問題] 用Eclipse輸出jar的問題
我寫了一個小小的寄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
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
07/16 17:33, 3F
推
07/16 17:34, , 4F
07/16 17:34, 4F
→
07/16 17:36, , 5F
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
07/17 16:57, 6F
→
07/19 00:35, , 7F
07/19 00:35, 7F