Ok Ich weiß, diese Frage wurde viele viele Male zuvor gestellt, aber ich habe es googelt und sah Beispiele und Fragen auf SO für den letzten Monat, und ich ernst kann das nicht zur Arbeit bringen. Ich denke, das Problem ist, dass ich das Programm sowohl von Eclipse als auch von der Befehlszeile aus ausführen kann. Ich benutze auch OSX und ich denke, dass viele der Beispiele, die ich lese, für Windows/Linux sind.Hinzufügen von Jar zu Classpath bei der Ausführung von der Befehlszeile
Wenn ich ein einfaches Programm zusammengestellt in Eclipse, die ich von der Kommandozeile ausgeführt werden soll ich dies tun:
java -cp bin MyProgram
Ich habe ein anderes Programm, das ich kompilieren und in Eclipse ausführen, und dies verweist auf die MySQL JDBC Connector (mysql-connector-java-5.1.19-bin.jar), der im selben Verzeichnis gespeichert ist. Dies funktioniert in Eclipse einwandfrei, aber ich kann es nicht über die Befehlszeile ausführen.
ich alle Kombinationen von Dingen versucht haben ...
java -classpath "bin;mysql-connector-java-5.1.19-bin.jar" MyProgram
java -cp bin\;mysql-connector-java-5.1.19-bin.jar MyProgram
und alle Arten von Klasse erhalten keine Fehler gefunden ...
Exception in thread "main" java.lang.NoClassDefFoundError: MyProgram
Caused by: java.lang.ClassNotFoundException: MyProgram
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Hallo Matt, wenn ich nicht irre ich glaube, das Classpath ist der Pfad zu der Hauptklasse, die Sie ausführen möchten, zu erklären. Also in diesem Fall, wenn Ihre Klasse im bin-Ordner ist, würde ich einfach versuchen: Java MyProgram oder Java-Cp Myprogrammath MyProgram –
@FedericoGiust Nicht speziell; Classpath definiert nur ein Archiv oder einen Pfad zu einer Gruppe von Klassen. Der Klassenpfad kann die Runnable-Klasse enthalten oder nicht (was normalerweise zu einem Ausnahme- oder Straight-Up-Java.exe-Fehler führt). Classpath kann Verzeichnisse und Archive enthalten, die keine ausführbaren Klassen haben. – Qix
mögliches Duplikat von [Java-Befehlszeile mit externem .jar] (http://stackoverflow.com/questions/6069702/java-command-line-with-external-jar) –