Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
ich stelle die Frage mal hier in dem Unterforum da es hier vermutlich am besten passt.
Ich habe in Eclipse ein JavaProgramm mit dutzenden Klassen gebaut, eine verwendete .jar Datewi ist auch im Workspace lib Ordner sowie .odt und txt Dateien im Workspace Ordner, die gelesen und verändert werden.
Funktioniert auch wunderbar wenn ich es in Eclipse ausführen lasse.
Nur ist es nun so dass ich mittels Windows Scheduler es gerne so machen würde dass bspw. jeden Tag mittags um 15 Uhr mein programm ausgeführt wird, was ja mit Eclipse nicht so geht bzw. nicht mein ziel ist.
Ich will mir eine .cmd Datei bauen, die den nötigen javac und java Befel drin hat und die eben zu jener Zeit ausgeführt wird.
Frage ist nur, wie müssen die nötigen Konsolenbefehle aussehen?
Wie komme ich vom in Eclipse funktionierenden Programm zu den entsprechenden konsolenbefehlen für java Compiler und Co. mit denen ich das selbe hinkriege?
Habe mir mit einer entspechenden Testklasse in Eclipse bereits Folgendes ausführen lassen:
Java:
package a;
import java.io.File;
public class PathTests {
public static void main(String[] args) {
String classpath = System.getProperty("java.class.path");
System.out.println(classpath);
String[] classpathEntries = classpath.split(File.pathSeparator);
for (String a : classpathEntries) {
System.out.println(a);
}
}
}
Dies druckt mir aber nur den Dateipfad des workspace bin ordners sowie den Dateipfad zur .jar Datei aus, also nicht wirklich das was ich will.
Kenne mich da nur wenig aus, wie baue oder finde ich den passenden javac ... und java .... Befehl für meine Zwecke?
Du kannst dir von Eclipse den java bzw. javaw Kommanzodeilenbefehl ausgeben lassen, der von Eclipse selbst benutzt wird, um die Anwendung zu starten.
Gehe hierzu einfach in die Run Configuration (z.B. Menü "Run" > "Run Configurations...") und dort wählst du die von dir in Eclipse üblicherweise gestartete Run Configuration aus und dann befindet sich unten auf der rechten Seite des Dialogfensters ein Button "Show Command Line".
Du kannst dir von Eclipse den java bzw. javaw Kommanzodeilenbefehl ausgeben lassen, der von Eclipse selbst benutzt wird, um die Anwendung zu starten.
Gehe hierzu einfach in die Run Configuration (z.B. Menü "Run" > "Run Configurations...") und dort wählst du die von dir in Eclipse üblicherweise gestartete Run Configuration aus und dann befindet sich unten auf der rechten Seite des Dialogfensters ein Button "Show Command Line".
Aber Eclipse oben gibt irgendwie nur den Pfad an zum java(?) Installationsordner
Und setzt den bin Ordner sowie die benutzte .jar Datei als classpath?
übersehe ich da irgendwo wo in dem befehl die Kompilierung und Ausführung passiert?
Und was ist eigentlich dieser XX kram da, ist der wichtig zum Kompilieren und Ausführen?
Wenn Du nur "java" eintippst, sucht sich Windows aus der PATH-Umgebungsvariable ein ausführbares Programm java.exe, java.cmd, java.bat, ... und startet dieses. Hast Du also z. B. am Anfang von PATH "C:\Program Files\Java\jdk-18.0.2.1\bin" stehen und Du gibst in der Eingabeaufforderung nur "java" ein, dann wird letztlich "C:\Program Files\Java\jdk-18.0.2.1\bin\java.exe" ausgeführt - genau das kannst Du auch direkt eingeben.
javaw ist einfach die Windows-Variante der Konsolenanwendung java.
Und der Rest sind Parameter für die JVM: "-Dfile.encoding=UTF8" setzt die Eigenschaft "file.encoding" auf "UTF8", "-classpath" gibt an, wo die JVM nach Klassen suchen soll und mit "-XX" werden Optionen für Entwickler angegeben, hier z. B. dass detaillierte NullPointerExceptions ausgegeben werden sollen (https://openjdk.org/jeps/358). Das dürfte allerdings seit Java ... 15(?) bereits standardmäßig aktiviert sein.
Noch was: das ist die Run Configuration, betrifft also nur die Ausführung.
Da kriege ich gleich mehrere Fehlermeldungen in der Konsole angezeigt:
Code:
Der Befehl "C:\Program" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Der Befehl "-Dfile.encoding" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Der Befehl "-classpath" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
-XX:+ShowCodeDetailsInExceptionMessages a.Test
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
Das Letzte mit dem Package name und so kann ja sein aber cmd kann ja wirklich mit keinem der Befehle irgendwas anfangen?
Muss ich da erst noch was machen bevor cmd kapiert was ich meine?
Jetzt kriege ich anlässlich der ersten zeile
eine ellenlange Erklärung zum java Befehl und wie man ihn nutzt...
Aber ausgeführt hat er mir von den Dateien nichts bisher :-(
Naja, ich habe nur die befehle kopiert die mir Eclipse so vorgegeben hatte.
Offensichtlich sieht deren benutzter Befehl dann wohl noch etwas Anders aus.
Und der Rest sind Parameter für die JVM: "-Dfile.encoding=UTF8" setzt die Eigenschaft "file.encoding" auf "UTF8", "-classpath" gibt an, wo die JVM nach Klassen suchen soll und mit "-XX" werden Optionen für Entwickler angegeben, hier z. B. dass detaillierte NullPointerExceptions ausgegeben werden sollen (https://openjdk.org/jeps/358). Das dürfte allerdings seit Java ... 15(?) bereits standardmäßig aktiviert sein.