André Laugks: JRE und Linux, Fehlermeldung

Hallo!

Ich möchte unter Linux SVG in PDF-Dateien konvertieren mit Hilfe von Batik. Dazu habe ich die aktuelle JRE installiert.

Da scheint die Umgebungsvariable DISPLAY nicht gesetzt zu sein.

Mhhhh, ich bin jetzt einfach überfragt! X11 benötige ich nicht, da alles auf der Console ablaufen soll.

----------------------------------><8------------------------------
linux:/www/batik # java -jar batik-rasterizer.jar -m application/pdf  org.svg
About to transcode 1 SVG file(s)

Converting org.svg to org.pdf ... _X11TransSocketINETConnect: Can't get address for smtp
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using 'smtp:0.0' as the value of the DISPLAY variable.
        at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
        at sun.awt.X11GraphicsEnvironment.<clinit>(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(Unknown Source)
        at java.awt.image.BufferedImage.createGraphics(Unknown Source)
        at org.apache.fop.svg.PDFGraphics2D.<init>(PDFGraphics2D.java:1603)
        at org.apache.fop.svg.PDFDocumentGraphics2D.<init>(PDFDocumentGraphics2D.java:101)
        at org.apache.fop.svg.PDFTranscoder.transcode(PDFTranscoder.java:171)
        at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown Source)
        at org.apache.batik.apps.rasterizer.SVGConverter.transcode(Unknown Source)
        at org.apache.batik.apps.rasterizer.SVGConverter.execute(Unknown Source)
        at org.apache.batik.apps.rasterizer.Main.execute(Unknown Source)
        at org.apache.batik.apps.rasterizer.Main.main(Unknown Source)
linux:/www/batik #
----------------------------------><8------------------------------

MfG, André Laugks

--
L-Andre @ gmx.de
  1. Hallo Andre,

    Da scheint die Umgebungsvariable DISPLAY nicht gesetzt zu sein.
    Mhhhh, ich bin jetzt einfach überfragt! X11 benötige ich nicht, da alles auf der Console ablaufen soll.

    Ich kenne das Programm nicht, aber es sieht so aus, als ob es ein X-Display voraussetzt. Allerdings macht es auch den Eindruck, als sei DISPLAY gesetzt, anders kann ich mir das "smtp" nicht erklaeren. Vielleicht versucht das Programm ja nur bei gesetztem DISPLAY eine Verbindung zum X-Server aufzubauen. Versuch mal folgendes:

    echo $DISPLAY

    (wahrscheinlich kommt da etwas wie smtp:0, wenn nichts kommt, kannst Du Dir den Rest sparen)

    unset DISPLAY

    java -jar batik-rasterizer.jar -m application/pdf  org.svg

    Ich hoffe das hilft Dir weiter.

    Viele Gruesse,
    Gero

    1. Hallo Gera!

      Ich hoffe das hilft Dir weiter.

      Jaein!

      Die Fehlermeldung hat sich geändert.

      Converting org.svg to org.pdf ... Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.

      Jetzt habe ich ":0.0" statt "smtp:0.0". DISPLAY scheint jetzt aber leer zu sein.

      MfG, André Laugks

      --
      L-Andre @ gmx.de
  2. Hallo,

    Ich möchte unter Linux SVG in PDF-Dateien konvertieren mit Hilfe von Batik. Dazu habe ich die aktuelle JRE installiert.
    Mhhhh, ich bin jetzt einfach überfragt! X11 benötige ich nicht, da alles auf der Console ablaufen soll.

    Sicher?
    Kommst Du an den Quellcode? Nutzt die Anwendung java.awt.Toolkit, z.B. public Image createImage(byte[] imagedata)? Das geht, glaube ich, nur mit X.

    viele Grüße

    Axel

    1. Hallo!

      Sicher?

      Nein :-)

      Kommst Du an den Quellcode? Nutzt die Anwendung java.awt.Toolkit, z.B. public Image createImage(byte[] imagedata)? Das geht, glaube ich, nur mit X.

      Auf der Kiste auf der es laufen soll, kann ich alles machen.

      Ich habe keine Ahnung, ob die Anwendung java.awt.Toolkit nutzt, weil ich gar keine Ahnung von Java habe.

      Was ist wenn ich X unter Linux laufen lasse, solle es dann gehen?

      MfG, André Laugks

      --
      L-Andre @ gmx.de
      1. Hallo,

        Ich habe keine Ahnung, ob die Anwendung java.awt.Toolkit nutzt, weil ich gar keine Ahnung von Java habe.

        Was ist wenn ich X unter Linux laufen lasse, solle es dann gehen?

        Der X-Server muss laufen und die Anwendung muss die Berechtigung haben, sich mit ihm zu verbinden. Sie muss nichts anzeigen. Sie sollte also in einer tty-Konsole laufen, wenn eine grafische Konsole existiert. Soweit ich weiß kann man das JRE 1.4 mit einer system property (java ... -D<name>=<value> ...) dazu bringen die X libraries zu nutzen, ohne dass der X-Server laufen muss. http://mindprod.com/jgloss/headless.html

        viele Grüße

        Axel