tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von sushicutta
  • 1 Beitrag von vfl_freak
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
493
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Marc79 Marc79 ist offline Mitglied Silber
    Registriert seit
    Oct 2010
    Beiträge
    69
    Hallo zusammen,

    ich habe wieder eine Idee und habe bisher nicht wirklich etwas gefunden, dass mir hilft.

    Ich habe jetzt eine Applikation geschrieben, die unterscheiden soll, ob sie manuell per Doppelklick oder durch z.B. eine Batch-Datei (Schedule-Task) gestartet wurde.

    Wenn Sie per Batch gestartet wird (z.b. autoImport.bat) würde ich gerne meine App
    Code :
    1
    
    Import.jar -auto
    starten wollen, also mit einem Zusatz "auto".

    Wie kann ich dass jetzt allerdings innerhalb der App abfangen? Sie soll ja jetzt erkennen, dass sie einen Startparameter erhalten hat.

    Dann entscheidet sich, wie es weiter geht mit den Methoden
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    if(auto)
    {
       runAuto();
    }
    else
    {
       shoFrm();
    }
     

  2. #2
    sushicutta sushicutta ist offline Grünschnabel
    Registriert seit
    Dec 2010
    Beiträge
    2
    Du kannst die Parameter, welche du der Applikation übergibst aus dem String Array "args" auslesen.

    So wuerde ich das machen.

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    
    package ch.sushicutta;
     
    public class GetArgumentFromMain {
     
        public static void main(String[] args) {
     
            boolean hasAutoFlag = false;
     
            int i = 1;
            for (String string : args) {
                System.out.println("Argument " + i + ": " + string);
                i++;
     
                if ("auto".equals(string) || "-auto".equals(string)
                        || "--auto".equals(string)) {
                    hasAutoFlag = true;
                    System.out.println("Das Flag \"auto\" wurde gesetzt.");
                }
            }
     
            if (hasAutoFlag) {
                runAuto();
            } else {
                shoFrm();
            }
     
        }
        
        private static void runAuto() {
            // do something...
        }
     
        private static void shoFrm() {
            // do another thing...
        }
     
    }
    Geändert von sushicutta (09.12.10 um 13:15 Uhr)
    Marc79 bedankt sich. 

  3. #3
    Marc79 Marc79 ist offline Mitglied Silber
    Registriert seit
    Oct 2010
    Beiträge
    69
    Das funtioniert schon mal prima ... ich kann also meine Parameter abfangen.

    Nun ist mir aber noch aufgefallen, dass ich zwei Classes habe:

    die ITSP_Directory_LoaderApp.java
    und ITSP_Directory_LoaderView.java

    die public static void main(String[] args) befindet sich in ITSP_Directory_LoaderApp.java. Hier prüfe ich bereits ab, ob Parameter mitgegeben wurden.
    Meinen Aufruf will ich aber in der ITSP_Directory_LoaderView.java starten. Dort ist nämlich eine Methode bereits einprogrammiert.

    Wie mache ich den Absprung dahin ? (Sorry, bin Java-Neuling und verstehe noch nicht alle Abläufe)
     

  4. #4
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    Zitat Zitat von Marc79 Beitrag anzeigen
    Nun ist mir aber noch aufgefallen, dass ich zwei Classes habe:

    die ITSP_Directory_LoaderApp.java
    und ITSP_Directory_LoaderView.java

    die public static void main(String[] args) befindet sich in ITSP_Directory_LoaderApp.java. Hier prüfe ich bereits ab, ob Parameter mitgegeben wurden.
    Meinen Aufruf will ich aber in der ITSP_Directory_LoaderView.java starten. Dort ist nämlich eine Methode bereits einprogrammiert.

    Wie mache ich den Absprung dahin ? (Sorry, bin Java-Neuling und verstehe noch nicht alle Abläufe)
    Das hängt davon, wie Du Dein Programm aufgebaut hast und was Du wie aufrufst.
    Hat jede der beiden Klassen eine eigene main()-Methode und ist somit eigenständig aufrufbar?
    Dann übergib' halt die Parameter an "LoaderView" !

    Falls nicht, dann musst Du sie wie zuvor an die main in "LoaderApp" und musst dann die Werte beim dortigen Aufruf der Startmethode von "LoaderView" dorthin übergeben !

    Poste ggf. den gesamten Code, so dass man sehen kann, was wann aufgerufen wird!

    Gruß
    Klaus
    Marc79 bedankt sich. 
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  5. #5
    Marc79 Marc79 ist offline Mitglied Silber
    Registriert seit
    Oct 2010
    Beiträge
    69
    @Klaus:

    Sorry, dass ich mich erst jetzt bedanke, aber ich musste noch paar andere Sachen erledigen.
    Ich habe mich etwas mit befasst und kam zu meiner Lösung.

    Um deine Frage zu beantworten. Nur eine von den beiden Klassen hat eine main-Methode und ich mache es wie folgt. args abfangen und einfach an die andere Klasse übergeben.

    Läuft perfekt! vielen Dank für den Tipp.

    @sushicutt: Auch dir ein Danke für den Tipp und die Erklärung!

    Langsam freunde ich mich auch mit Java an

    Gruß Marc
     

Ähnliche Themen

  1. parameter beim aufruf übergeben
    Von Blubb-Blubb im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 21.04.08, 12:39
  2. Parameter übergeben
    Von Jan-Frederik Stieler im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 25.10.07, 20:28
  3. parameter von php an xsl übergeben
    Von all_da_riots im Forum PHP
    Antworten: 0
    Letzter Beitrag: 24.03.07, 11:48
  4. SQL Parameter übergeben
    Von 7up im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 05.12.04, 18:51
  5. Start des Messenger beim Start von Outlook unterbinden
    Von Vacant im Forum Office-Anwendungen
    Antworten: 11
    Letzter Beitrag: 15.04.04, 09:07

Stichworte