Frequently Asked Questions (FAQ)

Was ist das Ziel von PlantUML?

PlantUML wird zum Zeichnen von UML-Diagrammen verwendet, wobei eine einfache und für den Menschen lesbare Textbeschreibung verwendet wird.
Seien Sie vorsichtig, denn es hindert Sie nicht daran, inkonsistente Diagramme zu zeichnen (z. B. zwei Klassen, die voneinander erben). Es ist also eher ein Zeichenwerkzeug als ein Modellierungswerkzeug.

Es gibt mehrere Gründe, warum PlantUML eine gute Wahl für die Erstellung von Diagrammen sein könnte:

  • PlantUML ist ein textbasiertes Werkzeug, was bedeutet, dass Sie Diagramme erstellen können, indem Sie Sätze in einer einfachen, für Menschen lesbaren Sprache schreiben. Das macht es einfach, die Struktur Ihrer Diagramme zu verstehen und zu bearbeiten, auch wenn Sie kein Experte für Diagrammwerkzeuge sind.

  • PlantUML ist quelloffen und kostenlos verfügbar, d.h. Sie können es ohne Lizenz- oder Abonnementgebühren nutzen.

  • PlantUML verwendet intelligente Layout-Algorithmen, um die Elemente Ihrer Diagramme übersichtlich und leicht verständlich anzuordnen, so dass Sie sich die manuelle Positionierung und Ausrichtung einzelner Elemente sparen können.

  • PlantUML ist ein Generator, d.h. es erstellt automatisch Diagramme auf der Grundlage des von Ihnen bereitgestellten Textes. Dies erleichtert das schnelle Erstellen und Aktualisieren von Diagrammen und ermöglicht es Ihnen, sich auf die Darstellung der Struktur und der Beziehungen Ihrer Diagramme zu konzentrieren, anstatt sich um deren Aussehen zu kümmern.

  • PlantUML ist in hohem Maße anpassbar und bietet viele Möglichkeiten, das Erscheinungsbild Ihrer Diagramme zu gestalten. Sie können auch das Wissen und die Erfahrung der PlantUML-Community nutzen, um Lösungen für häufige Layoutprobleme zu finden.

Insgesamt ist PlantUML ein leistungsstarkes und vielseitiges Werkzeug, um schnell und einfach professionell aussehende Diagramme zu erstellen. Es eignet sich besonders gut für Benutzer, die einen einfachen, textbasierten Ansatz zur Erstellung von Diagrammen bevorzugen und ein Werkzeug wünschen, das das Layout und das Aussehen ihrer Diagramme automatisch handhaben kann.

In essence, PlantUML emerges as a potent and adaptable tool, facilitating the swift and effortless creation of professional diagrams. It caters especially to individuals who favor a text-based methodology for diagram creation, offering automated assistance in managing the layout and visualization of the diagrams.
WARNING
 This translation need to be updated. 
WARNING

Ich mag nicht, wie die von PlantUML erzeugten Diagramme aussehen.

  • Sie können Themes mit PlantUML verwenden

Sie können Themes mit PlantUML verwenden, um das Aussehen Ihrer Diagramme anzupassen. PlantUML bietet mehrere eingebaute Themen, die Sie verwenden können, und Sie können auch Ihre eigenen Themen erstellen, indem Sie Ihre eigenen Farben und Stile definieren.

  • PlantUML übernimmt einen Großteil der Layoutarbeit für Sie

PlantUML übernimmt einen Großteil der Layoutarbeit für Sie, so dass Sie sich auf die Darstellung der Beziehungen und der Struktur Ihres Diagramms konzentrieren können. Es verwendet intelligente Layout-Algorithmen, um die Elemente Ihres Diagramms auf eine klare und leicht verständliche Weise anzuordnen, was Ihnen die Zeit und Mühe erspart, einzelne Elemente manuell zu positionieren und auszurichten. Dies macht es zu einem großartigen Werkzeug, um schnell und ohne großen manuellen Aufwand professionell aussehende Diagramme zu erstellen.

  • PlantUML ist ein Generator, kein Werkzeug zur Positionierung von Elementen

PlantUML ist ein Generator, was bedeutet, dass es automatisch Diagramme auf der Grundlage des von Ihnen bereitgestellten Textes erstellt. Dies unterscheidet sich von einigen anderen Diagrammwerkzeugen, die es Ihnen erlauben, einzelne Elemente in Ihrem Diagramm manuell zu positionieren und anzuordnen.

Der Hauptvorteil dieses Ansatzes besteht darin, dass Sie Diagramme schnell und einfach erstellen können, ohne sich um die genaue Platzierung der einzelnen Elemente kümmern zu müssen. Außerdem ist es einfacher, Ihre Diagramme zu aktualisieren, da Sie einfach den Text ändern können, der Ihr Diagramm repräsentiert, und PlantUML wird das Diagramm automatisch aktualisieren, um Ihre Änderungen wiederzugeben.

Ein potenzieller Nachteil bei der Verwendung eines Generators wie PlantUML ist, dass Sie möglicherweise nicht so viel Kontrolle über das genaue Layout Ihres Diagramms haben wie bei einem Werkzeug, mit dem Sie Elemente manuell positionieren können. Für viele Benutzer macht jedoch die Zeit- und Arbeitsersparnis durch die Verwendung eines Generators diese Einschränkung mehr als wett.

Darüber hinaus ist das PlantUML Community Forum eine großartige Ressource, um Lösungen für häufige Layout-Probleme zu finden und Tipps und Tricks für die Anpassung des Aussehens Ihrer Diagramme zu teilen.

For those seeking advice or solutions to common layout issues, the [PlantUML community forum](https://forum.plantuml.net/) stands as a vibrant platform to exchange tips and procure answers to your dilemmas, enhancing your mastery over customizing your diagrams.
WARNING
 This translation need to be updated. 
WARNING

Wie lange sind die von PlantUML Server erzeugten Bilder gültig?

Links zu png oder svg, die von PlantUML Server generiert werden, sind für immer gültig (d.h. so lange der Server läuft).
Wir speichern jedoch keine Diagramme auf unseren Servern.

Das mag widersprüchlich klingen. Ist es aber nicht: das gesamte Diagramm ist in der URL selbst komprimiert. Wenn der Server die URL erhält, dekomprimiert er die URL, um den Diagrammtext abzurufen und das Bild zu erzeugen. Es besteht keine Notwendigkeit, irgendetwas zu speichern. Selbst wenn der Server ausgefallen ist, können Sie das Diagramm mit dem Flag -decodeurl über die Befehlszeile abrufen. Außerdem werden die Diagrammdaten in den PNG-Metadaten gespeichert, so dass Sie sie auch von einem heruntergeladenen Bild abrufen können.

Gelegentlich können wir HTTP-Traces auf unserem Server aktivieren. Dies geschieht hauptsächlich bei Leistungsproblemen (wenn wir welche haben), um den Datenverkehr zu verstehen, den wir erhalten. Sobald das Problem gelöst ist, schalten wir die HTTP-Traces wieder aus und entfernen die Protokolle.

Bezüglich sensibler Inhalte: Auch wenn wir die erzeugten Diagramme nicht speichern, sollten Sie sich bewusst sein, dass der gesamte Datenverkehr über HTTP läuft, so dass er leicht abgefangen werden kann.

Daher sollten Sie wahrscheinlich einen lokalen Server in Ihrem eigenen Netzwerk installieren, wenn Sie Diagramme mit sensiblen Informationen erstellen möchten. Sie können dies ohne Java/J2EE-Kenntnisse tun, da in PlantUML.jar ein kleiner Webserver enthalten ist.

It does not work on my config!

PlantUML has been installed on various systems, and some users have reported minor issues when installing it.
You can have a look on this page which give advises if something is wrong.

Which version of Graphviz should I use?

You have more information about Graphviz about Graphviz here.

The following version have been tested, and are known to work:

  • 2.26.3
  • 2.28
  • 2.30.1
  • 2.34
  • 2.36
  • 2.38
  • 2.44

Note that versions 2.39 to 2.42 do not work very well with PlantUML.

With version 2.44, under Windows, you may have to run dot -c in a command line to finalize the installation. You may have to run dot -c with Administrator Right.

If you compile Graphviz by yourself, you have to build it with libexpat in order to work with PlantUML.

Is this mature? I don't see any new release?

Google Trends are somehow positive. And there are few books that mention PlantUML. So yes, it's mature.

Note that PlantUML is developed with continuous integration in mind. That means that there are new releases quite often, with (hopefully!) backward compatibility. So the file PlantUML.jar may changed over time, while keeping the same name.

If you want to know the exact version you are using, you can type in the command line:

java -jar plantuml.jar -version

or use the following small special diagram description:

@startuml
version
@enduml

How to know if a new release is available?

To check if a newer version is available for download, you can go to the download page.

You can also subscribe to the following rss flows:

Or you can use the command line:

java -jar plantuml.jar -version

Or use the following small special diagram description:

@startuml
version
@enduml

I want to generate huge diagrams!

PlantUML limits image width and height to 4096. There is an environment variable that you can set to override this limit: PLANTUML_LIMIT_SIZE. You have to define this variable before launching PlantUML, something like:

set PLANTUML_LIMIT_SIZE=8192

or

setenv PLANTUML_LIMIT_SIZE 8192

Another way is an option in the command line:

java -DPLANTUML_LIMIT_SIZE=8192 -jar /path/to/plantuml.jar ...

Note that if you generate very big diagrams, (for example, something like 20 000 x 10 000 pixels), you can have some memory issues. The solution is to add this parameter to the java vm : -Xmx1024m.

I have issues with accented characters.

Characters encoding is a subtle thing... By default, PlantUML use the default charset of your platform, which may or may not be UTF-8 . If you want to know which charset you are using, you can type the following command:

java -jar plantuml.jar -help

...
-charset XYZ To use a specific charset (default is windows-1252)
...

If you want to use a different charset, for example UTF-8, you can use the -charset flag :

java -jar plantuml.jar -charset UTF-8 ...

You can also find here information about unicode . Note that even if Java does not support B.O.M. (Byte Order Mark) in UTF-8 format file, a workaround has been put into PlantUML, so this should not be an issue.

I have issues with Asian characters.

Some Japanese users reported that they have to set the LANG variable to ja_JP.UTF-8 in their shell before launching PlantUML.

export LANG = ja_JP.UTF-8

Since the new architecture, it should simply work, because Java knows how to draw East Asian characters.

How to generate EPS?

You can use the -teps flag in the command line, or format="eps" in the ANT task.

Under which license is PlantUML distributed?

PlantUML is distributed under the GPL license.
You can print the license using the command line option:

java -jar plantuml.jar -license

Or you can use the special diagram:

@startuml
license
@enduml

I don't like GPL!

You can also use:

Those versions miss few features (DITAA for example), but are 100% able to generate UML diagrams.

You can print the license of these versions using the command line option:

java -jar plantuml.jar -license

Or you can use the special diagram:

@startuml
license
@enduml

Are images generated by PlantUML covered by the GPL/LGPL/ASL/EPL/MIT license?

No, they are not.

Images (whatever their format : PNG, SVG...) generated by the execution of PlantUML are owned by the author of their corresponding sources code (that is, their textual description in PlantUML language).

Images generated by the execution of PlantUML are not considered as covered work. You can do whatever you want with them.

The generated images can then be used without any reference to the GPL/LGPL/ASL/EPL/MIT license. It is not even necessary to stipulate that they have been generated with PlantUML, although this will be appreciated by PlantUML team.

There is an exception : if the textual description in PlantUML language is also covered by some license (like the GPL/LGPL/ASL/EPL/MIT), then the generated images are logically covered by this license.

Can I redistribute the LGPL binary file PlantUML.jar and if there any constraints about it?

As long as you do not modify the Java source code and the jar file, you can integrate PlantUML.jar in your own closed source software.

The only constraint is that you have to mention somewhere in your own license or in your documentation that you are using PlantUML and that PlantUML is distributed under LGPL.

You can then even sell your software and earn money, without any other constraints (although donation will be appreciate in that case :-)

What is the license of the PlantUML syntax?

There are no license for the PlantUML syntax itself : this means that everybody can use it.

So you can use PlantUML comments into your own code : those comments are owned by yourself, and are not considered as covered work, and are not covered by the GPL/LGPL/APL/EPL/MIT license.

Only the current implementation (that is, PlantUML program) is licensed under GPL, LGPL, ASL, EPL or MIT. On the other hand note that the documentation (examples, notices, ...) published in the PlantUML website is copyrighted. But you can still write your own documentation.

What does EmptySvgException mean?

PlantUML is using Graphviz to generate some diagrams. So PlantUML is launching dot program and retrieve the information generated by dot as a SVG flow.

This message means that PlantUML is getting an empty flow from dot execution, and therefore cannot generate UML diagrams. There may be several reasons why this happens:

  • There is an issue with your Graphviz installation. Try a very simple diagram, with only one class for example.
  • Your version of Graphviz is too old and is crashing with information provided by PlantUML. Check your version with testdot
  • Your diagram is too complex.
  • There is a bug in PlantUML and/or in dot.

Could not initialize class net.sourceforge.plantuml.ugraphic.UFont

If you have the error message java.lang.NoClassDefFoundError: Could not initialize class net.sourceforge.plantuml.ugraphic.UFont, it probably means that there are no fonts installed on your server.

You can solve it by adding fontconfig on your system:

sudo yum install fontconfig

or

sudo apt-get install fontconfig

You may also need to install

ttf-droid

I have a message complaining about X11 or headless on MacOS Ventura !

If you get this exception on MacOS Ventura from plantuml with no arguments, adding -gui might work around the problem. This is a known issue but does not appear to indicate a problem since sub-commands (like -gui) do work. If this is not enough, see the next section.

I have a message complaining about X11 or headless!

If you are running PlantUML on a linux server without graphical capability, you may have some error message:

  • Can't connect to X11 window
  • X11 connection rejected because of wrong authentication.
  • HeadlessException

Basically, this is because PlantUML needs to have access to some graphical resources (more information here). You can turn PlantUML to headless mode, using the flag -Djava.awt.headless=true. For example:

/usr/bin/java -Djava.awt.headless=true -jar /data/PlantUml/plantuml.jar ...

I have an UnsatisfiedLinkError under Mac OS X!

Under Mac OS X, if you have some error message like:

Error java.lang.UnsatisfiedLinkError / liblwawt.dylib /libosxapp.dylib

You need to follow the instructions on http://stackoverflow.com/questions/25914757/osx-yosemite-jvm-shared-library-does-not-contain-the-jni-createjavavm-symbol:

  1. Download and install the package: JavaForOSX.
  2. Found the file AptanaStidio3.ini, the file by default located under the directory here: /Applications/Aptana Studio 3/AptanaStudio3.app/Contents/MacOS
  3. Add -vm argument to specify the java which will be used to lunch Aptana Studio: -vm /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java

This seems to work only under Java 6, so you may define the following alias to be used in your scripts.

alias java6="export JAVA_HOME=$(/usr/libexec/java_home -v 1.6.0)"

PlantUML scripts are grabbing keyboard/window focus!

Depending on your configuration, you can try the flag -Djava.awt.headless=true.
For example:

/usr/bin/java -Djava.awt.headless=true -jar /path/to/plantuml.jar ...

Is @startuml needed in with -pipe flag?

Short answer: You do have to use @startuml (or @startditaa/@startjcckit...) when starting a diagram.

Long answer:

The @startuml/@startditaa/@startjcckit is useful to determine the type of diagram (uml, ditaa, jcckit...), and because you can optionally put a filename after the @startXYZ. This also allows to have several diagrams inside the same file.

Earlier versions of PlantUML were not supporting ditaa or jcckit. When you use -pipe flag, since the diagram is generated to standard output, there could be only one diagram in the standard input. And there is no need to specify a filename. For all those reasons, @startuml was not needed when using -pipe flag at that time.

Later, it has been decided to normalize this, and to impose @startXYZ everywhere, even with -pipe flag, because it was confusing for users. Unfortunately, since some existing scripts were already using the fact that @startuml is not needed in -pipe flag, it has been decided to keep this as a deprecated option, just to allow older scripts to run. We indeed do pay attention of ascending compatibility.

For newer scripts, you should not rely on this, and use @startXYZ/@endXYZ with the -pipe flag.

What about XMI?

Work is in progress.

I found an issue, but I cannot provide my diagram showing the issue because my diagram contains confidential data

There is a -cypher option with the command line that generates a .preproc file instead of regular image file.

The .preproc generated file looks like the input diagram expect that all words (except PlantUML language keywords) have been replaced by a random set of letters.

You can double check this by running several time the -cypher option (you will get a different text each time). You may also look at the Cypher.java class used to execute this transformation to be sure that there are no backdoor there to retrieve back your original diagram.

If there is an issue in your original diagram, the same issue is likely to also occur with the cyphered one. Since the cyphered text is really meaningless, you can safely share it with us : there will be no way for us to guess what you are really working on.

But we will be able to reproduce the issue and fix it so that you can have your original (and confidential) diagram working.

I have a question that is not here!

You can use the forum facility.

Someone will try to answer your question there.


Privacy Policy      Advertise