Befehlsparameter über cmd mitgeben

Status
Nicht offen für weitere Antworten.

Hutmacher

Bekanntes Mitglied
So, ich habe ja nun mein Programm geschrieben, das in regelmäßigen Abständen die Windowstaste drückt. Das Intervall soll aber nicht immer gleich sein, sondern über eine Variable interval erfolgen.

Was ich versuchen möchte:

Den Dateinamen (natürlich auf der richtigen Ebene) einzugeben, und die Variable mitübergeben.
r77kmxbv.png

Dass ich also wie bei einer .BAT-Datei einen Befehlsparameter mit angeben kann.

(Wie)Kann man das realisieren?
 
das String array args enthält genau diese parameter
=> auslesen und damit machen was du willst 😉
 
Parameter ans Ende der Commandline zum Starten der Java Anwendung hängen und in der Main Methode aus dem String[] auslesen
 
Parameter ans Ende der Commandline zum Starten der Java Anwendung hängen und in der Main Methode aus dem String[] auslesen

Und wie starte ich es über Commandline?
Habe das schon öfter versucht, da kam ich bei Googlen etc. auf Codes wie
javac classpath
java bla.class

und noch mehr, aber alles hat nicht richtig funktioniert!
 
Code:
java --cp .:WEITERE_CLASSPFADE path.to.my.class.MyClass

für ein jar alternativ:
Code:
java --cp .:WEITERE_CLASSPFADE -jar MyJar.jar
 
Code:
if (args.length < 2) {
    usage();
    System.exit(1);
}
String param = args[1];
 
Code:
java --cp .:WEITERE_CLASSPFADE path.to.my.class.MyClass

für ein jar alternativ:
Code:
java --cp .:WEITERE_CLASSPFADE -jar MyJar.jar

Sorry, aber wenn ich ehrlich bin, versteh ich das nicht.
Ich habe hier mal einen Überblick für meine Klassen gemacht.
Was müsste ich jetzt bei CMD eintippen, um mein Programm zu starten und den Parameter 5000 zu übergeben?
pd5g66xg.png
 
Wenn du eine Klasse ohne Abhängigkeiten ausserhalb des Workspaces hast (keine jars etc) dann:
Code:
java de.hutmacher.irgendwas.BeispielKlasse <parameter, zB 5000>
Wenn du ein Jar gemacht hast
Code:
java -jar meineJarDatei.jar <parameter, zB 5000>

wenn du Eclipse verwendet, kannst du unter "Run..." die Parameter in ein Textfeld eintragen
 
Wenn du eine Klasse ohne Abhängigkeiten ausserhalb des Workspaces hast (keine jars etc) dann:
Code:
java de.hutmacher.irgendwas.BeispielKlasse <parameter, zB 5000>
Wenn du ein Jar gemacht hast
Code:
java -jar meineJarDatei.jar <parameter, zB 5000>

wenn du Eclipse verwendet, kannst du unter "Run..." die Parameter in ein Textfeld eintragen

So, das habe ich jetzt mal probiert. Ich habe eine Runnable Jar auf dem Desktop (obwohl ich nur eine JAR erstellen habe mit Eclipse, aber wayne).
Wenn ich das jetzt so eingebe, bekomme ich aber einen Syntaxfehler!

c46s9p46.png
 
natürlich ohne die <> 😉
Aah, sag sowas doch!^^
Danke, es klappt perfekt.

Kann ich das Programm auch wieder über cmd abbrechen?

EDIT:
Mir ist gerade aufgefallen, dass wenn man das Programm so callt, der cmd-Bildschirm offen bleibt und dieser bei Schließen das Javaprogramm auch beendet … und das ist ja, wenn das im Hintergrund laufen soll, suboptimal. Kann ich das verhindern?
 
Zuletzt bearbeitet:
Kann ich das Programm auch wieder über cmd abbrechen?
Wäre mir neu.

Mir ist gerade aufgefallen, dass wenn man das Programm so callt, der cmd-Bildschirm offen bleibt und dieser bei Schließen das Javaprogramm auch beendet … und das ist ja, wenn das im Hintergrund laufen soll, suboptimal. Kann ich das verhindern?
"cmd /k" lässt das Fenster offen. "cmd /c" schließt es danach.

Ebenius
 
EDIT:
Mir ist gerade aufgefallen, dass wenn man das Programm so callt, der cmd-Bildschirm offen bleibt und dieser bei Schließen das Javaprogramm auch beendet … und das ist ja, wenn das im Hintergrund laufen soll, suboptimal. Kann ich das verhindern?

Das ist OS-abhängig, unter Linux kannst du den Prozess z.B. in "screen" drücken, als Daemon starten oder einfach mit & im Hintergrund laufen lassen (falls kein Output vorhanden ist; ansonsten noch > und &>)
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben