Откуда мы можем получить com.sun.mail?

У нас есть зависимость javax.mail (вот ее последняя версия). У него есть класс javax.mail.internet.InternetAddress, который имеет этот импорт

import com.sun.mail.util.PropUtil;

Вот единственное место, где оно используется

    private static final boolean ignoreBogusGroupName = PropUtil.getBooleanSystemProperty("mail.mime.address.ignorebogusgroupname", true);

У нас есть дистрибутив JDK 8 на основе OpenJDK. У него вообще нет com.sun.mail. Кажется, в самом OpenJDK 8 его тоже нет (во всяком случае, я скачал архив, вручную проверил его содержимое и не нашел его)

InternetAddress from jakarta.mail не имеет такого импорта (jars), вместо него используется jakarta.mail.internet.MimeUtility. Но переход на jakarta кажется рискованным (или, по крайней мере, хлопотным, я помню боль перехода на jakarta.servlet)

Откуда мы могли бы взять com.sun.mail (или как-то иначе решить эту проблему)?

Этот вопрос похож на: ClassNotFoundException com.sun.mail.util.SharedByteArrayInputStream. Если вы считаете, что это другое, отредактируйте вопрос, поясните, чем он отличается и/или как ответы на этот вопрос не помогают решить вашу проблему.

Filburt 14.08.2024 08:46

Не пытайтесь избегать почты Джакарты. В долгосрочной перспективе это принесет вам только боль

g00se 14.08.2024 08:49

@Filburt Я вообще не понимаю, как это связано (кроме того факта, что javax.mail упоминается в обоих)

Wacage 14.08.2024 09:07

Это похоже, потому что речь идет о классах javax.mail в вашем пути к классам. Похоже, у вас конфликт версий. Можете ли вы настроить минимальный проект, чтобы воспроизвести проблему? Например. Файл pom.xml и файл .java либо не могут скомпилироваться, либо выдают исключение во время выполнения?

matt 14.08.2024 09:18

JavaMail (теперь JakartaMail/Angus Mail) никогда не был частью самой Java.

Mark Rotteveel 14.08.2024 10:57
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы зайдете в репозиторий исходного кода javax.mail (https://github.com/javaee/javamail) и посмотрите его POM-файл, зависимость, которую POM использует для com.sun.mail, будет следующей:

<dependency>
   <groupId>com.sun.mail</groupId>
   <artifactId>javax.mail</artifactId>
   <version>${mail.version}</version>
</dependency>

где mail.version будет версией вашей зависимости javax.mail.

Попробуйте добавить это в POM-файл вашего проекта.

Другие вопросы по теме