Исключение: java.lang.NoClassDefFoundError: javax/activation/DataHandlerJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Исключение: java.lang.NoClassDefFoundError: javax/activation/DataHandler

Сообщение Anonymous »

Я создаю приложение чата в javafx и пытаюсь использовать API Javamail для проверки электронной почты пользователя. Проблема в том, что когда я запускаю приложение, оно показывает следующее сообщение:
java.lang.NoClassDefFoundError: javax/activation/DataHandler
Я использую java 17, javafx 17, netbeans ide 12.0.
Это код, который я написал:

Код: Выделить всё

package chat;

import java.util.Properties;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class Chat extends Application{
private Parent raiz;
private Scene scene;
private Stage stg1;
private Image imagenx;

@Override
public void start(Stage stage) throws Exception {
raiz = FXMLLoader.load(getClass().getResource("Chat.fxml"));
scene = new Scene(raiz);
scene.setUserAgentStylesheet(getClass().getResource("chat.css").toExternalForm());
stg1 = stage;
stg1.setScene(scene);
imagenx = new Image(getClass().getResource("icono.jpg").toString());
stg1.getIcons().add(imagenx);
stg1.setTitle("Video chat");
stg1.setWidth(800);
stg1.setHeight(600);
stg1.show();
}

private void enviarMail(String destinatario){
String remitente = "mi remitente";
String asunto = "enviar correo de confirmacion";
String cuerpo = "mensaje a enviar";
String clv = "1234";

Properties props = System.getProperties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.user", remitente);
props.put("mail.smtp.clave", clv);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.port", "587");

Autenticador aut = new Autenticador(remitente,clv);
sesion = Session.getInstance(props,aut);
mm = new MimeMessage(sesion);

try{
mm.setFrom(new InternetAddress(remitente));
mm.addRecipients(Message.RecipientType.TO, destinatario);
mm.setSubject(asunto);
mm.setText(cuerpo);
try(Transport transport = sesion.getTransport("smtp")) {
transport.connect("smtp.gmail.com", remitente, clv);
try{
transport.sendMessage(mm, mm.getAllRecipients());
}
catch(MessagingException ex){
System.out.println(ex);
}
}
catch(Exception ex){
System.out.println(ex);
}
}
catch(MessagingException ex){
System.out.println(ex);
}
}

public static void main(String[] args) {
launch(args);
enviarMail("[email protected]");
}
}

class Autenticador extends Authenticator{
private String smtp_usuario = "";
private String smtp_pass = "";

Autenticador() {}

Autenticador(String user , String pass) {
this.smtp_usuario = user;
this.smtp_pass = pass;
}

@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(this.smtp_usuario,
this.smtp_pass);
}
}
Ошибка генерируется в этой строке кода:
mm = new MimeMessage(session);
измените библиотеку с javax. почту на jakarta.mail, обновите netbeans до версии 12.6, у меня установлена ​​версия java 17, добавьте jar jakarta.activation, но когда я запускаю проект в netbeans, возникает эта ошибка: java.lang.NoClassDefFoundError: jakarta/activation/DataHandler. Погуглив, я обнаружил, что мне следует добавить следующую зависимость:

Код: Выделить всё

jakarta.activation
jakarta.activation-api
2.0.1

запрос, куда мне следует добавить файл pom.xml с зависимостью и как использовать jar-файл jakarta.activation? Я самоучка, так что, возможно, вопрос очень очевиден. Есть ли еще какая-нибудь библиотека, кроме JavaMail, которую я мог бы использовать для отправки электронной почты?

Подробнее здесь: https://stackoverflow.com/questions/713 ... atahandler
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Исключение: java.lang.NoClassDefFoundError: javax/activation/DataSource при отправке почты
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • После миграции в Джакарту: java.lang.NoClassDefFoundError: javax/activation/DataContentHandler
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • После миграции в Джакарту: java.lang.NoClassDefFoundError: javax/activation/DataContentHandler
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • После миграции в Джакарту: java.lang.NoClassDefFoundError: javax/activation/DataContentHandler
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • После миграции в Джакарту: java.lang.NoClassDefFoundError: javax/activation/DataContentHandler
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»