2013-02-17 5 views
1

Вы, люди, заставляете меня чувствовать себя в сознании. Я постараюсь сделать это лучше.Java-программа, работающая на Windows 7, но не Windows 8?

Хорошо, поэтому эта программа (не убивайте меня .. я ее загрузил) работает только на Windows 7 и Ubuntu, насколько я могу судить. Когда вы открываете его в Windows 8, он говорит «Ошибка исключения Java».

Я думаю, что это как-то связано с catch(messagingException ex) в конце файла. Я признаю, что я не знаю много о Java, но вы должны начать где-нибудь, не так ли? Я знаю, что java для всех платформ!

Я также пробовал эту программу с несколькими файлами и несколькими учетными записями Gmail ... Я даже попробовал это с моим адресом электронной почты Comcast.
Я использую «JavaMailAPI» (http://www.oracle.com/technetwork/java/javamail/index.html) для фактической части рассылки.

Когда я открываю его на терминале в Windows 8 это дает мне это:

Exception in thread "Main" java.lang.noclassdeffounderror: java/mail/mailexception 
at java.lang.Class.getDeclaredMethods0(Native Method) 
at java.langf.Class.privateGetDdecLaredMethods(Unkown source) 
at java.lang.Class.getMethod(unknown source) 
at sun.launcher.LauncherHelper.getMainMethod(Unknown source) 
caused by: java.lang.classnotfoundexception: java.mail.messagingException 
at java.net.URLCLassLoader$1.run(unknown source) 
at java.net.URLClassLoader$1.run(Unknown source) 
at java.security.AccessController.doPrivaleged(native Method) 
at java.net.URLClassLoader.findClass(Unknown source) 
at java.lang.ClassLoader.findClass(Unkown source) 
at jaa.lang.CLassLoader.loadClass(Unknown source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown source) 
at java.lang.ClassLoader.loadClass(Unknown source) 
... 6 more 

Вот код:

package testing; 

import java.util.Properties; 
import javax.activation.DataHandler; 
import javax.activation.DataSource; 
import javax.activation.FileDataSource; 
import javax.mail.BodyPart; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.Multipart; 
import javax.mail.PasswordAuthentication; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeBodyPart; 
import javax.mail.internet.MimeMessage; 
import javax.mail.internet.MimeMultipart; 
import java.util.logging.Level; 
import java.util.logging.Logger; 

public class Testing{ 
    public static void main(String[] args) { 
     Properties props = new Properties(); 
     props.put("mail.smtp.host", "smtp.gmail.com"); 
     props.put("mail.smtp.socketFactory.port", "465"); 
     props.put("mail.smtp.socketFactory.class", 
       "javax.net.ssl.SSLSocketFactory"); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.port", "465"); 

     Session session = Session.getDefaultInstance(props, 
      new javax.mail.Authenticator() { 
       protected PasswordAuthentication getPasswordAuthentication() { 
        return new PasswordAuthentication("Email","Password"); 
       } 
      }); 

     try { 
         BodyPart messageBodyPart = new MimeBodyPart(); 
         Multipart multipart = new MimeMultipart(); 
      Message message = new MimeMessage(session); 
      message.setFrom(new InternetAddress("Email Address")); 
      message.setRecipients(Message.RecipientType.TO, 
        InternetAddress.parse("Email Address to send ")); 
      message.setSubject("Subject"); 
      message.setText("Message"); 
         String filename = "attachment location"; 
     DataSource source = new FileDataSource(filename); 
     message.setDataHandler(new DataHandler(source)); 
     message.setFileName(filename); 
     multipart.addBodyPart(messageBodyPart); 
      Transport.send(message); 
      System.out.println("Done"); 
       } catch (MessagingException ex) { 
       Logger.getLogger(Testing.class.getName()).log(Level.SEVERE, null, ex); 
      } 
     } 
} 

Если вам нужно что-нибудь еще о программе, пожалуйста, ASK!

+3

Видимо, на компьютере с пакетом 'java.mail' (JAR-файл) отсутствует Windows 8 –

+0

Какая версия Java вы используете в этих системах? Какие библиотеки упакованы вместе с приложением? – toniedzwiedz

+0

Я запускаю Java 7u13 на обеих машинах, и JavaMail должен быть упакован с ним .. но, похоже, это не так. Я предполагаю, что это будет моя проблема, как мне упаковать библиотеку с программой? – Leetfail

ответ

0

You have to download Java Mail

Если JavaMail нужен это приложение, вы должны создать установщик пакетов и установите необходимые JARs как JavaMail.

+0

Спасибо, но все равно добавить это в саму программу? Так что мне не нужно рассказывать всем, чтобы скачать его? – Leetfail

+0

Итак, все, что вам нужно сделать, чтобы получить javamail на вашем компьютере, запускается «Mail.jar»? – Leetfail

+0

Создание приложений для распространения - это работа инструмента построения. Взгляните на [Gradle] (http://www.gradle.org/) и, в частности, на [плагин приложения] (http://www.gradle.org/docs/current/userguide/application_plugin.html), который будет создавать сценарии пакетной и командной оболочки для вашего приложения и создавать zip-файл или tar-файл с данными, кодом и всеми необходимыми библиотеками. –

Смежные вопросы