Anzure Skrevet 3. september 2015 Del Skrevet 3. september 2015 Jeg kjører en .jar-fil via CMD. Det jeg ønsker er å lage kommandoer i den konsollen, er det noen som vet hvordan man gjør det? For øyeblikket er det ikke mulig å skrive i CMD-en. Lenke til kommentar
quantum Skrevet 3. september 2015 Del Skrevet 3. september 2015 her var det vel rett og slett ikke mulig å forstå helt hva du vil? ønsker du å lage kommandoer i shellet eller i java-applikasjonen, vil du ha kommandolinjeparametre inn fra kommandolinja i javaapplikasjonen? hva mener du med å skrive i cmd'en? Lenke til kommentar
Anzure Skrevet 3. september 2015 Forfatter Del Skrevet 3. september 2015 La oss si at jeg kjører en Java applikasjon i CMD-en. Jeg ønsker å kunne skrive kommandoer i CMD-en jeg åpnet Java applikasjonen i, når jeg utfører kommandoer vil jeg at Java applikasjonen skal behandle den utførte kommandoen. Lenke til kommentar
Zash Skrevet 3. september 2015 Del Skrevet 3. september 2015 Så du vil ha innput fra kommandolinjen til java-programmet? http://www.mkyong.com/java/how-to-read-input-from-console-java/ Lenke til kommentar
Anzure Skrevet 3. september 2015 Forfatter Del Skrevet 3. september 2015 Så du vil ha innput fra kommandolinjen til java-programmet? http://www.mkyong.com/java/how-to-read-input-from-console-java/ Ja, på en møte. Men, jeg vil ikke at applikasjonen skal stanse i mens det går an å skrive. Applikasjonen skal alltid kjøre, men man skal alltid ha muligheten til å utføre en kommando i kommandolinjen. På en måte at en event kjøres når man trykker enter. Lenke til kommentar
Zash Skrevet 3. september 2015 Del Skrevet 3. september 2015 Det er meget vanskelig å forstå hva du egentlig er ute etter. Kan du gi et mer detaljert eksempel? Lenke til kommentar
Emancipate Skrevet 3. september 2015 Del Skrevet 3. september 2015 Jeg kan ikke Java, men det du trenger er 1. En tråd som leser fra kommandolinja. Muligvis linken over. 2. En annen tråd som kjører kontinuerlig. Sett deg inn i tråder ("threads") i Java. Lenke til kommentar
jonny Skrevet 3. september 2015 Del Skrevet 3. september 2015 (endret) Da må du bruke flere tråder. Enten lager du en ny tråd som gjør det applikasjonen skal gjøre, eller du lager en ny tråd som venter på input fra brukeren. Edit: Emancipate var raskere enn meg. Her er et eksempel på hvordan det kan gjøres: public class Program { private static class Application extends Thread { private volatile boolean doContinue = true; public void run() { System.out.println("Application started!"); do { // application code } while (doContinue); System.out.println("Application stopped!"); } public void handleCommand(String cmd) { if (cmd.length() == 0) return; if (cmd.equalsIgnoreCase("quit")) doContinue = false; else System.out.println("Unknown command: '" + cmd + "'"); } } public static void main(String[] args) { Application app = new Application(); app.start(); java.util.Scanner scanner = new java.util.Scanner(System.in); String cmd = null; do { System.out.print("> "); cmd = scanner.nextLine().trim(); app.handleCommand(cmd); } while (!cmd.equalsIgnoreCase("quit")); } } Endret 3. september 2015 av jonny 1 Lenke til kommentar
Anzure Skrevet 4. september 2015 Forfatter Del Skrevet 4. september 2015 (endret) Bare gjorde det slikt jeg: public static void main(String[] args){ commandHandler(null); } private static void commandHandler(final Scanner lastScanner){ Runnable r = new Runnable() { public void run() { Scanner scanner = lastScanner; if (scanner == null) scanner = new Scanner(System.in); String command = scanner.nextLine(); commandHandler(scanner); executeCommand(command); } }; new Thread(r).start(); } Men noe jeg synes er litt unaturlig er at kommandoen blir utført på en annen Thread, men jeg antar det ikke har så veldig mye å si. Det finnes vell ikke tilfeldigvis en kjapp fiks for det? Endret 4. september 2015 av waremanu Lenke til kommentar
jonny Skrevet 4. september 2015 Del Skrevet 4. september 2015 (endret) Bare gjorde det slikt jeg: ... Men noe jeg synes er litt unaturlig er at kommandoen blir utført på en annen Thread, men jeg antar det ikke har så veldig mye å si. Det finnes vell ikke tilfeldigvis en kjapp fiks for det? Hva mener du? Kommandoen blir utført av den tråden som tar imot brukerens kommando, etter at du først starter en ny tråd som tar imot brukerens neste kommando? Endret 4. september 2015 av jonny Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå