X11 mit source von Java aus starten

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von dideldum, 04.01.2007.

  1. dideldum

    dideldum Thread Starter MacUser Mitglied

    Beiträge:
    15
    Zustimmungen:
    0
    MacUser seit:
    04.01.2007
    Hi,

    der Start von X11 aus Java geht wie folgt:

    Runtime.getRuntime().exec( new String[]
    { "open", "/Applications/Utilities/X11.app"
    });


    IN der X11-Konsole kann ich dann eine Batch-Datei aufrufen mit

    source batch-txt

    Wie kann ich obige beiden Schritte kombinieren?
    D.h. X11 mit der Batch-Datei zusammen von Java aufrufen???

    Für jede Hilfe wäre ich super-dankbar :confused:

    Thomas
     
  2. ybasket

    ybasket MacUser Mitglied

    Beiträge:
    325
    Zustimmungen:
    3
    MacUser seit:
    17.01.2006
    vielleicht geht sowas mit AppleScript, welches sich über osascript an der Shell ansprechen lässt.
    Leider kenn ich mich da nicht gut genug aus, aber über die GUI-Skripting Komponente müsste das gehen.

    Ist aber ziemlich umständlich, wofür brauchst du das denn?
     
  3. dideldum

    dideldum Thread Starter MacUser Mitglied

    Beiträge:
    15
    Zustimmungen:
    0
    MacUser seit:
    04.01.2007
    Hi Danke für das Mail.

    Also ich habe einen Befehl:

    mono mccrypt.exe Mandant /config 123456789.xml /log 123456789.log

    (Microsoft DotNet-Applikation mit mono auf dem Mac)

    Der funktioniert prima wenn ich in in X11 manuell eingebe.

    Aber eigentlich soll das alles aus dem Java Programm funktionieren.

    Aus dem Java-Programm schaffe ich aber nur X11 aufzurufen.

    Daher dachte ich vielleicht mit dem source-Befehl?
    Aber der funktioniert auch nur wenn ich ihn manuell in X11 eingebe.

    Bin schon kurz vor dem durchdrehen :mad:

    Viele Grüße
    Thomas
     
  4. nine_inch_nail

    nine_inch_nail MacUser Mitglied

    Beiträge:
    99
    Zustimmungen:
    7
    MacUser seit:
    04.02.2006
  5. dideldum

    dideldum Thread Starter MacUser Mitglied

    Beiträge:
    15
    Zustimmungen:
    0
    MacUser seit:
    04.01.2007
    mit OutputStream in X11 schreiben von Java aus

    Ja das wäre wirklich klasse.
    Nur scheint das auch nicht zu funktionieren:

    Jedenfalls bringt folgender Sourcecode keine Reaktion, ausser dass X11 gestartet wird:

    Process proc2 = Runtime.getRuntime().exec(new String[]{
    "open" , "/Applications/Utilities/X11.app"});
    proc2.waitFor();

    BufferedWriter out =new BufferedWriter(
    new OutputStreamWriter( proc2.getOutputStream() ) );
    out.write("mono ...");
    out.newLine();

    try { out.flush(); out.close(); } catch (Exception ex){ex.printStackTrace(); }


    und eine Exeption bei flush:
    java.io.IOException: Broken pipe
    at java.io.FileOutputStream.writeBytes(Native Method)
    at java.io.FileOutputStream.write(FileOutputStream.java:260)

    Zum weinen :confused:
     
  6. ybasket

    ybasket MacUser Mitglied

    Beiträge:
    325
    Zustimmungen:
    3
    MacUser seit:
    17.01.2006
    das kann auch gar nicht funktionieren, da nicht X11 das Programm ausführt,
    wenn du es in xterm eintippst, sondern eine Shell (bei mir die Bash),
    die den Befehl interpretiert und ausführt.

    Probier mal:
    Process proc2 = Runtime.getRuntime().exec(new String[]{
    "open" , "/Applications/Utilities/X11.app"});
    proc2.waitFor();


    Process procBash = Runtime.getRuntime().exec(new String[]{
    "/usr/bin/bash"});
    procBash.waitFor();

    BufferedWriter out =new BufferedWriter(
    new OutputStreamWriter( procBash.getOutputStream() ) );
    out.write("mono ...");
    out.newLine();
    out.flush();

    vielleicht geht, ich kann es allerdings nicht garantieren.
     
  7. dideldum

    dideldum Thread Starter MacUser Mitglied

    Beiträge:
    15
    Zustimmungen:
    0
    MacUser seit:
    04.01.2007
    bash nicht da

    Hi ybasket,

    das hört sich super-klasse an.
    Aber bash habe ich wohl nicht.
    Auch nicht das Verzeichnis /usr/bin/bash

    Gibt es Alternativen?
    mein Rechner ist absolut Standard-installiert : Intel Core Duo Mac OS X 10.4.8.

    :o

    Vielen Dank!!!
     
  8. moses_78

    moses_78 MacUser Mitglied

    Beiträge:
    1.322
    Zustimmungen:
    22
    MacUser seit:
    08.04.2005
    Der Pfad zur bash ist /bin/bash.
     
  9. dideldum

    dideldum Thread Starter MacUser Mitglied

    Beiträge:
    15
    Zustimmungen:
    0
    MacUser seit:
    04.01.2007
    mit dem OutputStream unter java die Eingabe von Xterm in X11

    ok, mit

    Process procBash = Runtime.getRuntime().exec(new String[]{
    "open",
    "/bin/bash"});
    procBash.waitFor();


    öffnet sich das bash-Terminal.

    Obiger Source scchreibt hier aber nichts rein. Also keine weitere Reaktion.

    Manuelle Eingabe in das bash-Terminal führt leider auch zu einem Fehler.

    D.h. ich müsste statt der bash irgendwie mit dem OutputStream unter java die Eingabe von Xterm in X11 erreichen. Nur da funktioniert mein Aufruf.

    Was habe ich mir da nur ausgesucht.... :confused:
     
  10. dideldum

    dideldum Thread Starter MacUser Mitglied

    Beiträge:
    15
    Zustimmungen:
    0
    MacUser seit:
    04.01.2007
    Eingabe in XTerm von Java aus

    Hmmm, scheint irgendwie ein Ding der Unmöglichkeit zu sein - oder?
    Dabei ist es auf Windows so einfach.
    Oder mach ich alles verkehrt???:cake:
     
    Zuletzt bearbeitet: 07.01.2007
Die Seite wird geladen...

Diese Seite empfehlen