Lorsque je compile un code simple comportant les 2 instructions d'importation suivantes:
import javax.mail.*
import javax.mail.internet.*
Je reçois le message suivant:
package javax.mail does not exist
package javax.mail.internet does not exist
Pourquoi ai-je cette erreur?
Voici le code que j'ai:
import javax.mail.*;
import javax.mail.internet.*;
import Java.util.*;
class tester {
public static void main(String args[]) {
Properties props = new Properties();
props.put("mail.smtp.com" , "smtp.gmail.com");
Session session = Session.getDefaultInstance( props , null);
String to = "[email protected]";
String from = "[email protected]";
String subject = "Testing...";
Message msg = new MimeMessage(session);
try {
msg.setFrom(new InternetAddress(from));
msg.setRecipient(Message.RecipientType.TO , new InternetAddress(to));
msg.setSubject(subject);
msg.setText("Working fine..!");
} catch(Exception exc) {
}
}
}
Vous devez télécharger le fichier API JavaMail et placer les fichiers JAR appropriés dans votre chemin de classe.
Téléchargezjavax.mail.jar
et ajoutez-le à votre projet en procédant comme suit:
Si vous utilisez maven, ajoutez simplement à votre pom.xml:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.5.0-b01</version>
</dependency>
Bien sûr, vous devez vérifier la version actuelle .
Vous avez besoin de la bibliothèque javax.mail.jar
. Téléchargez-la à partir de Java.net et ajoutez-la à votre projet IntelliJ:
javax.mail.jar
File > Project Structure...
+
(Ajouter une nouvelle bibliothèque de projet).javax.mail.jar
Il se peut que vous ne disposiez pas des fichiers .jar nécessaires vous permettant d'accéder à l'API Java Mail. Ceux-ci peuvent être téléchargés depuis ici .
vous devez définir le chemin d'accès aux classes de vos fichiers mail.jar
et activation.jar
comme suit:
ouvrez l'invite de commande:
c:\user>set classpath=%classpath%;d:\jarfiles\mail.jar;d:\jarfiles\activation.jar;.;
et si vous n'avez pas les deux fichiers, veuillez les télécharger ici
Pour ceux qui cherchent toujours à utiliser la bibliothèque IMAP susmentionnée mais qui ont besoin d'utiliser gradle, ajoutez simplement cette ligne au fichier gradle de vos modules (et non au fichier gradle principal).
compile group: 'javax.mail', name: 'mail', version: '1.4.1'
Les liens pour télécharger le fichier .jar étaient morts pour moi, donc je devais choisir un autre itinéraire.
J'espère que cela t'aides :)
ProjectName\WebContent\WEB-INF\lib
Sélectionnez le fichier .jar dans ProjectName\WebContent\WEB-INF\lib
et cliquez sur OK.
c'est tout
Téléchargez le fichier "javamail1_4_5.Zip" de http://www.Oracle.com/technetwork/Java/javasebusiness/downloads/Java-archive-downloads-eeplat-419426.html#javamail-1.4.5-oth-JPR
Extraire le fichier Zip et placer le fichier JAR correspondant ("mail.jar") dans le chemin de classe
vous avez besoin de mail.jar et d'activation.jar pour créer l'application javamail
Je viens de résoudre ce problème moi-même, alors espérons que cela aidera. Mon projet fonctionne sur GlassFish 4 , Eclipse MARS , avec JDK 1.8 et JavaEE 7 .
Premièrement, vous pouvez trouver javax.mail.jar
dans le dossier glassfish
extrait: glassfish4->glassfish->modules
Ensuite, dans Eclipse , Cliquez avec le bouton droit de la souris sur votre projet dans l’explorateur et naviguez dans les éléments suivants: Properties->Java Build Path->Libraries->Add External JARs->
Accédez au dossier susmentionné pour ajouter javax.mail.jar
.
Avait le même problème. Il est évident que ces fichiers .jars ont été livrés avec Java <= v8.x, mais ne le sont plus. Il faut donc les télécharger séparément et les placer dans le chemin de classe approprié, comme souligné par plusieurs personnes ci-dessus. Je comprends que le nouveau Java est modularisé et donc potentiellement plus léger (ce qui est certainement une bonne chose, car l’ancienne configuration était un monstre). Comme nous pouvons le constater, d’autre part, c’est le lot de nombreuses configurations anciennes. Etant donné que le temps nécessaire pour les résoudre n’est pas imputable à Oracle, je suppose que cela a facilité leur décision ...