Ошибка при попытке запустить файл .jar с javamail из-за сообщения MessagingException - PullRequest
0 голосов
/ 08 апреля 2019

Я пишу небольшую программу автоматического ответа для своего SO и включил в нее функцию электронной почты как трюк / тест для себя.У меня исходный код работает нормально в NetBeans, но когда я пытаюсь запустить сам .jar в терминале Mac, я получаю сообщение об ошибке: Невозможно инициализировать основной класс [имя класса] Причина: java.lang.NoClassDefFoundError: javax / mail /MessagingException Я довольно новичок в Java, поэтому я прошу прощения за любую неопределенность или простоту в проблеме, но если есть что-то, что требует прояснения, постарайтесь изо всех сил

Я пытался просто регулярно запускать .jar двойным щелчком мыши изапустить его в терминале, и ни один из них не работает, но когда я собираю и запускаю исходный код в NetBeans, программа работает нормально.Я подозреваю, что это может быть связано с отлавливающей строкой исключения, но я действительно не знаю, почему.

try{
                    //sets variables to store custom subject and body data
                    System.out.print("Subject: ");
                    //input is name of scanner
                    String subject=input.next();
                    System.out.print("Body: ");
                    String body=input.next();                               

        Message message = new MimeMessage(session);
                    //sets sender as my email
        message.setFrom(new InternetAddress(myemail@gmail.com"));
                    //sets recipient as other email
        message.setRecipients(Message.RecipientType.TO,
            InternetAddress.parse("recipientemail@msn.com"));
                    //sets subject and content as variables defined earlier
        message.setSubject(subject);
        message.setText(body);
                    //sends message
        Transport.send(message);

        System.out.println("Done");
            //catches and throws a necessary messaging exception
    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }

1 Ответ

0 голосов
/ 08 апреля 2019

Я думаю, что проблема с запуском jar-файла из командной строки в том, что у вас нет java.mail в вашем classpath, но когда вы запускаете из IDE, он добавляется в проект как внешняя библиотека.https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html от @ user999

...