Avatar billede martin78 Nybegynder
03. februar 2003 - 17:42 Der er 14 kommentarer og
1 løsning

Java Mail

Jeg har installeret JavaMail, dvs lagt mail.jar og activation.jar i ..\jre\lib\ext.
Når jeg kompilerer msgsend, et medfølgende demo program, går det godt. Så snart jeg prøver at køre programmet( med java msgsend) siger den 'Exception in thread "main" java.lang.NoClassDeFoundError: javax/mail/Message'.
Jeg har også oprettet classpaths til at pege på mail.jar og activation.jar.

Umiddelbart nogle gode forslag?
Avatar billede arne_v Ekspert
03. februar 2003 - 18:14 #1
Bruger du samme classpath til javac og java ?
Avatar billede arne_v Ekspert
03. februar 2003 - 18:18 #2
Som hovedregel skal ting kunne køre med en classpath, hvis de
kan compile med en classpath.
Avatar billede martin78 Nybegynder
03. februar 2003 - 18:19 #3
....;C:\j2sdk1.4.1_01\bin;C:\j2sdk1.4.1_01\jre\lib\ext\mail.jar;C:\j2sdk1.4.1_01\jre\lib\ext\activation.jar;
Avatar billede arne_v Ekspert
03. februar 2003 - 18:25 #4
Har du prøvet:

javac -classpath C:\j2sdk1.4.1_01\jre\lib\ext\mail.jar;C:\j2sdk1.4.1_01\jre\lib\ext\activation.jar Foobar.java

java -classpath C:\j2sdk1.4.1_01\jre\lib\ext\mail.jar;C:\j2sdk1.4.1_01\jre\lib\ext\activation.jar Foobar

?

Foobar skal nar´turligvis erstattes af navnet på dit program.
Avatar billede martin78 Nybegynder
03. februar 2003 - 18:36 #5
hmm, det giver mig en lidt anderledes error, når prøver at køre det:
'Exception in thread "main" java.lang.NoClassDefFoundError: msgsend'.
msgsend er navnet på demo-programmet.
Avatar billede arne_v Ekspert
03. februar 2003 - 18:39 #6
Ahh.

Har du checket at det ikke er MsgSend eller Msgsend ?
Avatar billede arne_v Ekspert
03. februar 2003 - 18:39 #7
Eller er der en package øverst i msgsend.java ?
Avatar billede martin78 Nybegynder
03. februar 2003 - 18:45 #8
Jeg dumper lige kildekoden for en god ordens skyld :) :

import java.io.*;
import java.net.InetAddress;
import java.util.Properties;
import java.util.Date;

import javax.mail.*;
import javax.mail.internet.*;

public class msgsend {
.
.
}
Avatar billede arne_v Ekspert
03. februar 2003 - 18:49 #9
Den er god nok.

Det er mig som er en skovel.

Prøv:

java -classpath .;C:\j2sdk1.4.1_01\jre\lib\ext\mail.jar;C:\j2sdk1.4.1_01\jre\lib\ext\activation.jar msgsend
Avatar billede arne_v Ekspert
03. februar 2003 - 18:49 #10
Altså med . forrest i classpath.
Avatar billede martin78 Nybegynder
03. februar 2003 - 18:53 #11
Wow, det gav pote! Tusind tak for det, jeg havde næsten givet op :). Hvilken betydning har det at sætte . som class path?
Avatar billede arne_v Ekspert
03. februar 2003 - 18:56 #12
Så søger den også i det directory du står i og det er jo der
msgsend.class liger.
Avatar billede Slettet bruger
04. februar 2003 - 18:45 #13
Jeg ved godt det ikke er en pæn metode at bruge, men jeg plejer bare at pakke JAR filen ud så slipper man for at slåsm ed classpath :-/
Avatar billede arne_v Ekspert
04. februar 2003 - 18:51 #14
Det er hverken pænt, praktisk (hvis man har mange projekter, som
bruger samme jar-fil) eller altid muligt (f.eks. over net eller
i.f.m. servere).
Avatar billede Slettet bruger
04. februar 2003 - 19:49 #15
Men i de tilfælde hvor jeg har gjort det har det virket hver gang. Jeg er dog begyndt at bruge classpath i stedet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester