Per BatchScript Mail versenden

B

BatchJavaMail

Gast
Guten Morgen Zusammen,

ich wollte mal Fragen kann ich wenn ich durch ein Batchscript also blubb.bat eine Mail versenden.
Wenn ich mein Programm mit Eclipse ausführe funtioniert das Mailversenden wunderbar, aber sobald ich es mit dem Batch probiere kommt folgender Fehler.

Meine .bat sieht so aus:
Java:
@ECHO OFF
cd \
cd workspace
cd xmlparser
cd bin
java main 
pause

Fehler:
Java:
java.lang.NoClassDefFoundError: javax/mail/Adresse
Ok das bedeutet also das er die Klasse nicht finden kann, aber warum findet mein Eclipse diese?

Grüße und Danke für die Hilfe.
 

homer65

Top Contributor
NoClassDefFoundError heißt das eine Java Klasse (javax/mail/Adresse) nicht gefunden wurde.
Wo ist denn die? Vielleicht in einer beiliegenden .jar Datei?
Dann mußt du den Pfad zur .jar Datei per CLASSPATH Variable angeben.
Zum Beispiel:
set CLASSPATH=%CLASSPATH%;mail.jar
Wenn die .jar Datei mail.jar heißt.
 

akchill

Mitglied
....
ich habs nochmal versucht das klappt nicht.

Java:
@ECHO OFF
set CLASSPATH=%CLASSPATH%;jdom.jar dsn.jar imap.jar mailapi.jar pop3.jar smtp.jar
cd \
cd workspace
cd rser
cd bin
java main 
pause
 
B

bygones

Gast
zum einen.. warum in jeder zeile n cd und nicht einfach [c]cd \workspace\rser\bin[/c] ?
weiterhin wuerde ich beim Aufruf von java den classpath setzen - außerdem ist nicht das Leerzeichnen n trenner unter windows sondern ;

also
Code:
....
java -cp .;lib1.jar;lib2.jar;lib3.jar main
 

akchill

Mitglied
also ich weis nicht ob die richtig eingebunden sind, ich versuch mal so zu erklären der fehler kommt aufjeden fall noch.

habe mein Projekt ordner, dann in src liegt meine main klasse. desweiteren liegt im Projektordner ein Lib ordner in der meine Jar´s liegen.

oder muss ich die jars in den src ordner legen?!

java -cp .;dsn.jar;jdom.jar;pop3.jar;smtp.jar;mailapi.jar;imap.jar main
 

akchill

Mitglied
oder vllt ist das einfacher zu verstehen einfach ein jar zu bauen?!

habe eine einleitung hier im forum gefunden und versucht die nach zu bauen, funktioniert aber auch nicht. vllt kannst du damit was anfangen und mir helfen

Java:
@echo off
echo JarBatch - erzeugen von jar-Dateien

set path=.;C:\Programme\Java\jdk1.6.0_22\bin

rem * Manifestdatei vorbereiten und erzeugen.
echo Manifest-Version: 1.0>manifest.mf

rem --> anpassen!
rem * Bitte ClassPath hier angeben! Der Class-Path enthält eine Auflistung externer Jar-Dateien (optional)
rem * Beispiel: Class-Path: ./lib/h2.jar ./lib/icons.jar
echo Class-Path: C:\workspace\rser\lib\dsn.jar C:\workspace\rser\lib\imap.jar C:\workspace\rser\lib\jdom.jar C:\workspace\arser\lib\pop3.jar C:\workspace\rser\lib\mailapi.jar C:\workspace\rser\lib\smtp.jar>>manifest.mf

rem --> anpassen!
rem * Bitte Image für Splashscreen hier angeben! (optional)
echo Splashscreen-Image: splash.png>>manifest.mf

rem --> anpassen!
rem * Bitte Main-Class hier angeben! (Die Klasse mit der main()-Methode)
rem * Wenn die Main-Class in einem Package liegt, muss es mit angegeben werden.
echo Main-Class: C:\workspace\rser\src\main.java>>manifest.mf

rem * Abschließende Leerzeile nicht vergessen!
echo.>>manifest.mf

if exist *.class goto create

rem * Kompilieren, falls noch nicht geschehen.
:compile
if not exist *.java goto errorjava
javac -O *.java

rem * Jar-Datei erzeugen.
:create
if not exist *.class goto errorjar
rem --> anpassen!
rem * Anwendungsbeispiel: jar cfvm ArchivName.jar manifest.mf *.class images sounds
rem * würde ein Manifest, alle class-Dateien und die Verzeichnisse images und sounds in ein eine Jar-Datei namens ArchivName.jar einfügen.
rem * Bitte Name der zu erstellenden jar-Datei hier angeben!
jar cfvm MeinProgramm.jar manifest.mf MeinPackage
echo Entsprechende Dateien wurden dem jar-Archiv hinzugefügt.
goto end

:errorjava
echo java-Dateien nicht gefunden!
echo class-Dateien konnten nicht erstellt werden.

:errorjar
echo class-Dateien konnten nicht gefunden werden!
echo jar-Archiv konnte nicht erstellt werden.

:end
rem * Manifest von Festplatte löschen
del manifest.mf

rem * Konsole für Ausgaben geöffnet lassen
echo.
pause
 

homer65

Top Contributor
also ich weis nicht ob die richtig eingebunden sind, ich versuch mal so zu erklären der fehler kommt aufjeden fall noch.

habe mein Projekt ordner, dann in src liegt meine main klasse. desweiteren liegt im Projektordner ein Lib ordner in der meine Jar´s liegen.

oder muss ich die jars in den src ordner legen?!

java -cp .;dsn.jar;jdom.jar;pop3.jar;smtp.jar;mailapi.jar;imap.jar main

Sicher wäre es für jedes jar den kompletten Pfad anzugeben. Mal ein Beispiel:
set ICONEDITOR=C:\IconEditor
set CLASSPATH=%CLASSPATH%;%ICONEDITOR%\IconEditor.jar
set CLASSPATH=%CLASSPATH%;%ICONEDITOR%\image4j.jar
 

akchill

Mitglied
So jetzt funktioniert mein Batch, jetzt wollen sie es doch auf Linux laufen lassen. Die machen mich fertig. Habe mich dort auch mal eingelesen aber das scheint noch komplizierter:(

@ECHO OFF
set lib=C:\workspace\ser\lib
set CLASSPATH=%CLASSPATH%;%lib%\dsn.jar
set CLASSPATH=%CLASSPATH%;%lib%\jdom.jar
set CLASSPATH=%CLASSPATH%;%lib%\pop3.jar
set CLASSPATH=%CLASSPATH%;%lib%\smtp.jar
set CLASSPATH=%CLASSPATH%;%lib%\mailapi.jar
set CLASSPATH=%CLASSPATH%;%lib%\imap.jar
cd \
cd workspace
cd ser
cd bin
java main
pause
 
B

bygones

Gast
musst halt nun eine sh Datei schreiben...
Code:
export lib=C:\workspace\ser\lib // unix pfad eintragen
export CLASSPATH=$CLASSPATH:$lib\dsn.jar:$lib\jdom.jar:.... // und alle anderen per : anhängen
cd /workspace/ser/bin
java main

als simples skript... [c]export[/c] je nach installation kann auch set sein
 
A

akchillo

Gast
ich hab so ein Shell script fertig geschrieben...

export PATH=$PATH:/data/ser/lib/dsn.jar
export PATH=$PATH:/data/rser/lib/jdom.jar
export PATH=$PATH:/data/rser/lib/pop3.jar
export PATH=$PATH:/data/rser/lib/smtp.jar
export PATH=$PATH:/data/rser/lib/mailapi.jar
export PATH=$PATH:/data/rser/lib/imap.jar

#cd /data/rser/bin
/data/rser/src/main.java
sleep 5

das problem ist nur wenn ich das ausführe, fliegen mir alle Imports direkt in der Main methode und er fängt sie garnicht mal an zu starten. also er liesst imports und fliegt dann raus...
 
A

akchillo

Gast
tut mir leid das ic hnerve;)
aber bei diesem Script funktionieren die Imports auch nicht. Die fliege ndirekt als fehlermeldung, konnte nicht gefunden werden.
Und das sind nicht mal die Lib´s die ich eingebunden habe, ich glaube eher das es die Standartlib´s von java sind.

export lib=/data/ser/lib/
export CLASSPATH=$CLASSPATH:$lib\dsn.jar:$lib\jdom.jar:$lib\pop3.jar:$lib\smtp.jar:$lib\mailapi.jar:$lib\imap.jar:
#cd /data/rser/bin

/data/rser/src/main.java

sleep 5
 
B

bygones

Gast
Code:
#!/bin/bash

[[ ! -x `which java` ]] &&
    echo "Missing java, aborting ..." &&
    exit 1

cd /workspace/ser/bin # korrekter pfad eintragen

LIB_DIR=/path/to/libs
java -cp .:$LIB_DIR/lib1.jar:$LIB_DIR/lib2.jar main

ansonsten poste mal was java so ausspuckt

edit:
du kannst dir auch den Classpath mit allen jars in einem dir bauen lassen
Code:
CLASS_PATH="."
for lib in `ls /path/to/libs/*.jar`
do
    CLASS_PATH=$CLASS_PATH:$lib
done

java -cp $CLASS_PATH main
 

homer65

Top Contributor
/data/rser/src/main.java

So startet man kein Java Programm.

Hier mal ein Beispiel von mir:
Code:
#!/bin/bash
#
CLASSPATH=$CLASSPATH:/home/christian/JMyScanner/lib/JMyScanner.jar
CLASSPATH=$CLASSPATH:/home/christian/JMyScanner/lib/mysql-connector-java-5.1.10-bin.jar
export CLASSPATH
java main.Main /home/christian/JMyScanner/JMyScanner.ini
exit $?
 
J

JohannisderKaeufer

Gast
oder vllt ist das einfacher zu verstehen einfach ein jar zu bauen?!

Ich denke mit dem jar, hättest du dir das ein oder andere Aspirin ersparen können.

Ein Jar ist nicht viel mehr als ein Zip-Archiv mit der Endung jar in dem deine .class Dateien liegen.
Eine Jar hat zudem noch einen Ordner META-INF indem eine MANIFEST.MF liegt.

In der Manifest datei steht dann in welcher klasse die Main-Methode ist

Code:
Main-Class: MyPackage.MyClass

und welche zusätzlichen libs gebraucht werden

Code:
Class-Path: jar1-name.jar jar2-name directory-name/jar3-name

Wobei diese Angaben relativ zum jarfile sind. D.h. jar1-name.jar ist im Gleichen Verzeichnis wie MeineAnwendung.jar

Gestartet wird eine jar üblicherweise durch

Code:
java -jar MeineAnwendung.jar

oder per Doppelklick.
 
J

JohannisderKaeufer

Gast
Ich denke mit dem jar, hättest du dir das ein oder andere Aspirin ersparen können.

Ein Jar ist nicht viel mehr als ein Zip-Archiv mit der Endung jar in dem deine .class Dateien liegen.
Eine Jar hat zudem noch einen Ordner META-INF indem eine MANIFEST.MF liegt.

In der Manifest datei steht dann in welcher klasse die Main-Methode ist

Code:
Main-Class: MyPackage.MyClass

und welche zusätzlichen libs gebraucht werden

Code:
Class-Path: jar1-name.jar jar2-name directory-name/jar3-name

Wobei diese Angaben relativ zum jarfile sind. D.h. jar1-name.jar ist im Gleichen Verzeichnis wie MeineAnwendung.jar

Gestartet wird eine jar üblicherweise durch

Code:
java -jar MeineAnwendung.jar

oder per Doppelklick.

Und mit einem Ant-Skript lässt sich das Erstellen eines jars auch noch automatisieren.
Wenn am Schluß eine einzelne jar Datei rauskommen soll in der alle Abhängigen jars enthalten sind, kann man auch ein Programm wie Fat Jar benutzen (Lizenzen beachten). Fat jar entpackt alle in jars enthaltenen class Dateien und fügt sie in ein gemeinsames jar. Somit bleibt eine Datei übrig in der alles enthalten ist.
 
A

akchillo

Gast
Ok. Ein Jar hätte wirklich eventuell alles einfacher gelöst. Muss mic hdazu nochmal genau informieren. Aber habe das jetzt probiert wie Homer es als Beispiel gezeigt hat, nur was ist die .ini datei bei dem Main aufruf?!

CLASSPATH=$CLASSPATH:/data/ser/lib/dsn.jar
CLASSPATH=$CLASSPATH:/data/ser/lib/jdom.jar
CLASSPATH=$CLASSPATH:/data/ser/lib/pop3.jar
CLASSPATH=$CLASSPATH:/data/ser/lib/jdom.jar
CLASSPATH=$CLASSPATH:/data/ser/lib/smtp.jar
CLASSPATH=$CLASSPATH:/data/ser/lib/imap.jar
export CLASSPATH

java main.Main

-----> /home/christian/JMyScanner/JMyScanner.ini <----- das verstehe ich nur noch nicht?! Der Pfad zur Main datei?
Und wieso ruft man die main.Main auf?! :) nicht mit .java?
 
B

bygones

Gast
er sagte doch Hier mal ein Beispiel von mir, also mit seiner Main Klasse, die einen Parameter aufnimmt
 
A

akchillo

Gast
Nein noch nicht ganz mein sieht jetzt so aus.

CLASSPATH=$CLASSPATH:/data/rser/lib/dsn.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/jdom.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/pop3.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/jdom.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/smtp.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/imap.jar
export CLASSPATH

java /data/rse/bin/main.Main

Fehler meldung could not find the main class
 
B

bygones

Gast
java /data/rse/bin/main.Main
das schaut auch schon gar nicht richtig ist...

Wie heißt deine Main Klasse ? wo liegt sie ?

Angenommen deine Klassen liegen unter /data/rse/bin. dort liegt deine Main Klasse mit dem Namen Main:
Java:
cd /data/rse/bin
java Main

wenn deine Klassen unter /data/rse/bin liegen und deine Main Klasse im package main:
Java:
cd /data/rse/bin
java main.Main
 
A

akchillo

Gast
meine main klasse heißt main. Sie liegt unter

data/wbxmlparser/src/main.java

und dort....

data/wbxmlparser/src/main.class
 
B

bygones

Gast
woher kam das bin dann ?!
Java:
cd data/wbxmlparser/src
java main
 
A

akchillo

Gast
funktioniert. ich gebe euch allen ein virtuelles Bier aus:)


CLASSPATH=$CLASSPATH:/data/rser/lib/dsn.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/jdom.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/pop3.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/jdom.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/smtp.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/imap.jar
CLASSPATH=$CLASSPATH:/data/rser/bin/main.class
export CLASSPATH

cd /data/rser/bin/
java main
 

homer65

Top Contributor
funktioniert. ich gebe euch allen ein virtuelles Bier aus:)


CLASSPATH=$CLASSPATH:/data/rser/lib/dsn.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/jdom.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/pop3.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/jdom.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/smtp.jar
CLASSPATH=$CLASSPATH:/data/rser/lib/imap.jar
CLASSPATH=$CLASSPATH:/data/rser/bin/main.class
export CLASSPATH

cd /data/rser/bin/
java main

Freut mich für dich.
Eine Anmerkung hätte ich allerdings noch.
Statt
Code:
CLASSPATH=$CLASSPATH:/data/rser/bin/main.class
Im CLASSPATH eine einzelne Klasse anzugeben, gibt man um .class Dateien zu finden (nicht .jar) nur das Verzeicnis an; also:
Code:
CLASSPATH=$CLASSPATH:/data/rser/bin/
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z E-Mail senden Allgemeine Java-Themen 2
C Probleme mit javax.mail.Session Allgemeine Java-Themen 8
jumichel Eclipse The package javax.mail is not accessible Allgemeine Java-Themen 3
N E-Mail Validator (ohne Regex!) Allgemeine Java-Themen 7
TechnikTVcode Mail Programm Allgemeine Java-Themen 2
N E-Mail per Java verschicken Allgemeine Java-Themen 2
C javax.mail.Message message.setreplyto() null setzen (keine replyto Adresse) Allgemeine Java-Themen 25
B Java Mail: Prüfung auf neue Emails Allgemeine Java-Themen 1
B Java Mail: Emails sortieren? Allgemeine Java-Themen 5
B Java Mail: Prüfen, ob Email hat ein Anhang oder nicht Allgemeine Java-Themen 2
B Mail: Nicht vorhandener Empfänger ermitteln Allgemeine Java-Themen 4
B Java Mail: Unterscheidung bei Attachments und eingefügte Bilder in Email Allgemeine Java-Themen 18
T java mail 1.4.2| ssl Allgemeine Java-Themen 2
E javax.mail sene Type ändern Allgemeine Java-Themen 2
R Compiler-Fehler Bild per E-Mail versenden Allgemeine Java-Themen 3
H IDEA IntelliJ Java Mail funktioniert nach Export nicht mehr! Allgemeine Java-Themen 1
D JPanel in Mail darstellen Allgemeine Java-Themen 30
D Mail aus GUI generieren Allgemeine Java-Themen 2
U javax.mail.Folder.list() zeigt nicht alle Ordner Allgemeine Java-Themen 5
KeVoZ_ Java Mail senden - geht nicht Allgemeine Java-Themen 4
K Input/Output E-mail Zusammenfassen Senden Allgemeine Java-Themen 2
F Java Mail Problem: Authentifizierung wird nicht immer mitgeschickt Allgemeine Java-Themen 1
M Java Mail verwenden Allgemeine Java-Themen 20
X Mail versenden mit java.mail Allgemeine Java-Themen 14
L Java Mail Allgemeine Java-Themen 0
H Java Mail Fehlermeldung: java.lang.NoClassDefFoundError: javax/mail/internet/AddressException Allgemeine Java-Themen 5
B Java Mail Client als Outlook ausgeben Allgemeine Java-Themen 2
F E-Mail aus JAVA senden nach Umstellung auf Netbean 7.4 mit Java 7U45 nicht mehr möglich Allgemeine Java-Themen 4
T popup für e-mail Allgemeine Java-Themen 2
Z Java E-Mail Client mit End-to-End-Verschlüsselung Allgemeine Java-Themen 4
P javax.mail MessageCount Allgemeine Java-Themen 13
I Eigenes Mail-Programm schreiben Allgemeine Java-Themen 21
C E-Mail: Authenticator.getPasswordAuthentication() wird nicht gerufen Allgemeine Java-Themen 2
GUI-Programmer Java Mail - Proxy für Verbindung einstellen Allgemeine Java-Themen 2
P Mail wird nicht gesendet - Muss ich kein PW angeben ? Allgemeine Java-Themen 13
U Mailclient über getDesktop.mail vorbereiten, Problem beim Anhang: Allgemeine Java-Themen 3
S Mail Adressen Syntax prüfen Allgemeine Java-Themen 22
S Java Mail Allgemeine Java-Themen 3
G Problem Java Mail API: CC wird nicht berücksichtigt Allgemeine Java-Themen 7
R php hat mail() und java? Allgemeine Java-Themen 5
S mail per smtp lokal in postfix einliefern Allgemeine Java-Themen 6
Mike90 Graph in einer Mail verschicken Allgemeine Java-Themen 7
N Java Mail Allgemeine Java-Themen 5
F Spam-Mail-Programm gesucht Allgemeine Java-Themen 11
N Java Mail Allgemeine Java-Themen 7
M [Java Mail] Multipart beim Senden funktioniert nicht. Allgemeine Java-Themen 11
S Shell-Befehl: mail Allgemeine Java-Themen 6
W mail senden mit java Allgemeine Java-Themen 4
C Desktop.mail Problem. IO Exception: Failed to open. Allgemeine Java-Themen 3
P Mail Notifier Allgemeine Java-Themen 9
J String auf E-Mail überprüfen Allgemeine Java-Themen 4
S E-Mail an nicht-RFC822-formatierte Adresse Allgemeine Java-Themen 4
M Desktop mail attachments Allgemeine Java-Themen 3
S E-Mail-Links: geklickten Link ermitteln Allgemeine Java-Themen 4
F Umlaute: E-Mail per JavaMail und Textfile Allgemeine Java-Themen 5
C Mail Api http Protokoll? Allgemeine Java-Themen 5
C E-Mail Versand Allgemeine Java-Themen 3
0x7F800000 e-mail mit einer virtuellen datei schicken? Allgemeine Java-Themen 3
J Mail schicken über mailx Allgemeine Java-Themen 3
G E-Mail versenden Allgemeine Java-Themen 6
L Infos zu java.mail Allgemeine Java-Themen 5
H Java Mail hängt sich unregelmässig auf Allgemeine Java-Themen 8
G Mail Konten (E-Mails holen) Allgemeine Java-Themen 5
P welche java version für javax.mail? Allgemeine Java-Themen 7
S JavaMail --> HTML-Mail verschicken? Allgemeine Java-Themen 7
S Ungelesene Mails mit Java Mail abholen Allgemeine Java-Themen 3
S Java Mail IOException Allgemeine Java-Themen 13
B Mail mit Java Allgemeine Java-Themen 2
S Java mail weiterleitung funktioniert nicht Allgemeine Java-Themen 2
L E-Mail Auswertung mit Servlet (Excel) Allgemeine Java-Themen 3
G Probleme beim Mail-Api mit BCC Allgemeine Java-Themen 2
S Mail mit zip-Attachment Allgemeine Java-Themen 2
G mail body parsen (->attachment & filename) Allgemeine Java-Themen 2
C [javax.mail] Betreff vergleichen Allgemeine Java-Themen 5
C [javax.mail] Folder not open Allgemeine Java-Themen 2
G Probleme mit java.mail Allgemeine Java-Themen 2
M javax.mail – Sending failed – Invalid Addresses Allgemeine Java-Themen 8
R Java Mail Abrufen von Mails Allgemeine Java-Themen 2
P Inhalt einer Mail anzeigen Allgemeine Java-Themen 5
S E-Mail ueber Exchange Server schicken! Allgemeine Java-Themen 3
P Streams per Mail mit JavaMailAPI versenden Allgemeine Java-Themen 3
S java mail API, email versenden Allgemeine Java-Themen 8
S mail von server mittels mailapi löschen Allgemeine Java-Themen 2
d.lumpi JDA eclipse dateien versenden Allgemeine Java-Themen 4
T Automatisch Mails versenden Allgemeine Java-Themen 4
T Email versenden Allgemeine Java-Themen 1
KaffeeFan EMails versenden in Java Allgemeine Java-Themen 18
P "Email" versenden mit Anhang Allgemeine Java-Themen 5
P MimeMessage SMS versenden Allgemeine Java-Themen 0
C SMS versenden Allgemeine Java-Themen 7
A Email versenden mehrere Zeilen Allgemeine Java-Themen 10
foobar Email mit Standard Mailclient versenden Allgemeine Java-Themen 12
C .hex Datei über RS232 versenden Allgemeine Java-Themen 3
D Email an mehrer Absender versenden Allgemeine Java-Themen 3
G E-Mails versenden Allgemeine Java-Themen 12
D Mit Java Daten aus Access holen und als VCard versenden Allgemeine Java-Themen 3
B Image(png) versenden Allgemeine Java-Themen 3
T ObjectOutputStream => Socket versenden Allgemeine Java-Themen 2
T Automatische Emails versenden mit Java? Allgemeine Java-Themen 5
K Email mit Anhang über mailto:. versenden Allgemeine Java-Themen 11

Ähnliche Java Themen

Neue Themen


Oben