2010-11-26 5 views
4

Ich versuche, eine Java-Datei auf Unix-Maschine auszuführen. Lassen Sie mich die Verzeichnisstruktur zeigen zuerst:Java: Klasse nicht in Unix gefunden

/home/username 
    |_ SimpleMail.java 
    |_ mail.jar 

ich den Java-Code kompiliert werden:

# javac -classpath mail.jar SimpleMail.java 

Nach dem Kompilieren, dass Verzeichnis hat:

/home/username 
     |_ SimpleMail.java 
     |_ mail.jar 
     |_ SimpleMail.class 

Jetzt habe ich versucht, zu laufen, dass SimpleMail-Klassendatei Das heißt geben Klasse nicht gefunden Fehler: Ich habe versucht, die Klasse laufen mit:

# java -classpath mail.jar SimpleMail 

Fehler:

The java class is not found: SimpleMail 

Was ist falsch in diesem Prozess?

Thanks :)

+0

Eine schön formatiert und gut präsentiert Frage +1 – Joel

Antwort

5

Sie müssen auch das aktuelle Verzeichnis auf dem Classpath aufzunehmen, um dort die Klassendatei zu holen:

java -classpath mail.jar:. SimpleMail 

, die funktionieren, wenn SimpleMail nicht in einem Paket . Ansonsten sollten Sie mit -d . kompilieren und den Paketnamen enthalten, wenn Sie java laufen:

javac -d . -classpath mail.jar SimpleMail.java 

java -classpath mail.jar:. my.pkg.SimpleMail 
+0

+1 für den Fall tun wird: ' SimpleMail' in einem Paket. Danke, Jon! – bdhar

+0

Können Sie bitte hier für mich überprüfen http://pastebin.com/9ttWyuKb –

+0

@Mohamed: Sie brauchen activation.jar. Es sollte in der JavaMail-Distribution enthalten sein oder von dort verlinkt sein. –

0
# java -classpath mail.jar;. SimpleMail 

+0

Es gibt so etwas: http://pastebin.com/VFVcg71Z –