[NEWSboard IBMi Forum]

Thema: java.awt

Hybrid View

  1. #1
    Registriert seit
    Jan 2001
    Beiträge
    850

    java.awt

    Hallo zusammen,

    bei einer Anwendung die auf die AS/400 übernommen wird
    erhalte ich folgende Fehlermeldung.

    Hat jemand eine Idee dazu ?

    gruss
    michael






    java.awt.AWTError: AWT class or API used without specifying property os400.awt.native=true or java.awt.headless=true
    at java.lang.Throwable.<init>(Throwable.java:195)
    at java.lang.Error.<init>(Error.java:49)
    at java.awt.AWTError.<init>(AWTError.java:30)
    at com.ibm.as400.system.NoGraphicsEnvironment.<init>( NoGraphicsEnvironment.java:48)

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    die packages java.awt.* sind auf der AS/400 nicht ausführbar, da die AS400 keinen graphischen Datenstrom anzeigen oder drucken kann. Damit die Kaffeetasse drauf darf, gibt es da ein paar Workarounds mit einer Graphik Konsole etc., das ist aber für produktiven Einsatz nicht brauchbar, allenfalls für die Ausführung eines Installationsprozesses.

    mfg

    Dieter Bender

    Zitat Zitat von mk Beitrag anzeigen
    Hallo zusammen,

    bei einer Anwendung die auf die AS/400 übernommen wird
    erhalte ich folgende Fehlermeldung.

    Hat jemand eine Idee dazu ?

    gruss
    michael






    java.awt.AWTError: AWT class or API used without specifying property os400.awt.native=true or java.awt.headless=true
    at java.lang.Throwable.<init>(Throwable.java:195)
    at java.lang.Error.<init>(Error.java:49)
    at java.awt.AWTError.<init>(AWTError.java:30)
    at com.ibm.as400.system.NoGraphicsEnvironment.<init>( NoGraphicsEnvironment.java:48)
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Jan 2001
    Beiträge
    850
    Hallo Dieter,

    das ist aber schade. Gibt es denn keine Möglichkeit die
    Maschine doch dazu zu bringen ?
    In meinen weiteren Recherechen
    bin ich z.B über das hier gestolpert:
    java.awt.headless=true

    Wobei ich nicht wüsste was ich damit machen sollte.

    gruss
    Michael

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    Problem sind nicht die Properties, sondern die Runtime für die Grafik Komponenten. Die beiden Work arounds sind:
    - X-Windows Server unter PASE laufen lassen und dann kann man das auf entsprechenden Terminals anzeigen und auf der AS400 laufen lassen (nachdem man in den Sitzungen java.awt.native=true setzt)
    - dann gab es (oder gibt es noch) eine Art X-Windows für Arme und Kranke namens Java AWT Konsole
    letzteres ist grausam und ersteres eine etwas teure Methode auf einer AIX OS/400 laufen zu lassen, um dann eine wackelige AIX unter OS/400 laufen zu lassen...
    Ich kann da nur raten: Finger weg!!!

    mfg

    Dieter Bender

    Zitat Zitat von mk Beitrag anzeigen
    Hallo Dieter,

    das ist aber schade. Gibt es denn keine Möglichkeit die
    Maschine doch dazu zu bringen ?
    In meinen weiteren Recherechen
    bin ich z.B über das hier gestolpert:
    java.awt.headless=true

    Wobei ich nicht wüsste was ich damit machen sollte.

    gruss
    Michael
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Oct 2004
    Beiträge
    251
    Zitat Zitat von mk Beitrag anzeigen
    ....
    bin ich z.B über das hier gestolpert:
    java.awt.headless=true

    Wobei ich nicht wüsste was ich damit machen sollte.
    Zuerst einmal: Hat dein Programm auch eine grafische Ausgabe (1.) oder verwendet es einfach nur AWT Komponenten (2.)?

    Für 2. ist genau der Sytemwert java.awt.headless=true gedacht.

    Man kann diesen entweder bei den Sytem-Properties eintragen oder java mit

    java -Djava.awt.headless=true ....

    starten.

    Ein Beispielanwendung von mir.
    Bei meiner fortschrittlichen DB2Excel-Variante ermittle ich die optimale Spaltenbreite auch für Proportionalschriftarten. Um die Breite davon zu ermitteln, braucht es AWT-Komponenten - es wird aber nie eine Grafik ausgegeben.

    Ein weiterer Einsatz dieser Variante sind Webserver, auf welchem z.B. kein X-Windows läuft.

    /Robert

  6. #6
    Registriert seit
    Jan 2001
    Beiträge
    850
    Hallo Robert, hallo Dieter,

    bin heute hinter den Trick gekommen.
    Ich erstelle eine separate propertiedatei mit dem Eintrag
    java.awt.headless=true

    Dann mit dem Befehl ADDENVVAR ENVVAR(QIBM_JAVA_PROPERTIES_FILE)
    wird die Variable für den Job gesetzt.
    Damit klappt es.

    Allerdinings finktioniert es auf V5R3 so.

    Ich würde da gleich Szenario aber auf einem V5R1 System benötigen. Lt Dokumentaion scheint das aber nicht zu
    funktionieren.

    Danke und Gruß
    Michael

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Scheint dass QIBM_JAVA_PROPERTIES_FILE auf V5R1 nicht definiert ist.

    Mach es doch so wie oben vorgeschlagen und starte dein Java mit "-d.....".
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Oct 2004
    Beiträge
    251
    Alternativ kann man noch ein systemweites Propertiefile anlegen:

    /QIBM/UserData/Java400/SystemDefault.properties

  9. #9
    Registriert seit
    Oct 2007
    Beiträge
    7

    PASE benötigt

    Noch eine Ergänzung:

    java.awt.headless=true funktioniert nach meiner bisherigen Erfahrung nur wenn das PASE environment installiert ist! (AIX lässt grüssen)

    Insbesondere bei Installationen mit älteren Release ist das öfters nicht der Fall.

    Gruß
    RT

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •