This will look for
java -jar plantuml.jar file1 file2 file3
file3. For each diagram, a
.pngfile will be created. For processing a whole directory, you can use:
This command will search for
java -jar plantuml.jar "c:/directory1" "c:/directory2"
.javafiles of the
\), use a double
.cppfiles in all directories starting by dummy :
And to process any
java -jar plantuml.jar "dummy*/*.cpp"
.cppfiles in all directories starting by dummy, and theirs subdirectories :
java -jar plantuml.jar "dummy*/**.cpp"
java -jar plantuml.jar -x "**/common/**" -x "**/test/Test*" "dummy*/**/*.cpp"
If you recurse into several directory, there is a slight difference if you provide an absolute or a relative path for this output directory.
java -jar plantuml.jar -o "c:/outputPng" "c:/directory2"
java -jar plantuml.jar -config "./config.cfg" dir1
-metadataoption. This means that the PNG is almost "editable": you can post it on a corporate wiki where you cannot install plugins, and someone in the future can update the diagram by getting the metadata, editing and re-uploading again. Also, the diagram is stand-alone.
-checkmetadataoption checks whether the target PNG has the same source and if there are no changes, doesn't regenerate the PNG, thus saving all processing time. This allows you to run PlantUML on a whole folder (or tree with the
Unfortunately this option works only with local files. It doesn't work with
java -jar plantuml.jar -metadata diagram.png > diagram.puml
-pipeso you cannot fetch a URL with eg
curland feed the PNG to PlantUML. However, the Plantuml server has a similar feature, where it can get a PNG from a URL and extract its metadata.
-failfastflag to change this behavior to stop diagram generations as soon as one error occurs. In that case, some diagrams will be generated, and some will not. There is also a
-failfast2flag that does a first checking pass. If some error is present, no diagram will be generated at all. In case of error,
-failfast2runs even faster than
-failfast, which may be useful for huge project.
-pipeoption, you can easily use PlantUML in your scripts. With this option, a diagram description is received through standard input and the png file is generated to standard output. No file is written on the local file system. Example:
cat somefile.puml | java -jar plantuml.jar -pipe > somefile.png
--pipemapoption can be used to generate PNG map data (hyperlink rectangles) for use in HTML, eg:
The map file looks like this:
cat somefile.puml | java -jar plantuml.jar -pipemap > somefile.map
Note: Also take a look at
<map id="plantuml_map" name="plantuml_map">
<area shape="rect" id="id1" href="http://plantuml.com" title="http://plantuml.com"
-pipeNoStderrto implement proper multiplexing of several PNG in a stream (in case the puml file contains multiple diagrams), and error handling.
This will output:
java -jar plantuml.jar -help
Usage: java -jar plantuml.jar [options] -gui
(to execute the GUI)
or java -jar plantuml.jar [options] [file/dir] [file/dir] [file/dir]
(to process files or directories)
You can use the following wildcards in files/dirs:
* means any characters but '\'
? one and only one character but '\'
** means any characters (used to recurse through directories)
where options include:
-DVAR1=value Set a preprocessing variable as if '!define VAR1 value' were used
-I/path/to/file Include file as if '!include file' was used
-I/path/to/*.puml Include files with pattern
-Sparam1=value Set a skin parameter as if 'skinparam param1 value' were used
-author[s] Print information about PlantUML authors
-charset xyz Use a specific charset (default is windows-1252).
Use "utf-8" for extra international chars
-checkmetadata Skip PNG files that don't need to be regenerated
-checkonly Check the syntax of files without generating images
-checkversion Check if a newer version is available for download
-computeurl|-encodeurl Compute the encoded URL of a PlantUML source file
-config "file" Include a file before each diagram (same as -I ??)
-cypher Cypher texts of diagrams so that you can share them
-decodeurl Retrieve the PlantUML source from an encoded URL
-disablestats Disable statistics computation (default)
-duration Print the duration of complete diagrams processing
-[exclude|x] pattern Exclude files that match the provided pattern
-enablestats Enable statistics computation
-encodesprite 4|8|16[z] "file" Encode a sprite at gray level (z for compression) from an image
-extractstdlib Extract PlantUML Standard Library into stdlib folder
-failfast Stop processing as soon as a syntax error in diagram occurs
-failfast2 Do a first syntax check before processing files, to fail even faster
-filename \"example.puml\" Override %filename% variable
-graphvizdot "exe" Specify the graphviz "dot" executable.
If needed, you can setup the environment variable GRAPHVIZ_DOT.
-gui Run the graphical user interface
-h[elp] Display this help message
-htmlstats Output general statistics in file plantuml-stats.html
-keepfiles Do NOT delete temporary files after processing
-language Print the list of PlantUML keywords
-loopstats Continuously print statistics about usage
-metadata Retrieve PlantUML sources from PNG images
-nbthread N Use N threads for processing
-nbthread auto Use 4 threads for processing
-nosuggestengine Disable the suggest engine when errors in diagrams
-o[utput] "dir" Generate images in the specified directory
-overwrite Allow overwriting of read-only files
-p[ipe] Use stdin for PlantUML source and stdout for PNG/SVG/EPS generation
-pattern Print the list of Regular Expression used by PlantUML
-pipeNoStderr When used with -pipe, print errors to stdout (no image is generated in that case).
The first line is "ERROR" and it respects -pipedelimitor
-pipedelimitor "xyz" When used with -pipe, append "xyz" after every image
-pipeimageindex N Generate only the N-th image when used with -pipe
-pipemap Generate PNG map data of hyperlink rectangles, for use in HTML
-preproc Output the preprocessed text of diagrams
-printfonts Print fonts available on your system
-progress Display a textual progress bar at the console
-quiet Do NOT print error messages to the console
-r[ecurse] Recurse through directories
-realtimestats Generate statistics on the fly rather than at the end
-splash Display a splash screen with some progress bar
-stdlib Print standard library info
-syntax Report any syntax error from standard input without generating images
-teps Generate images using EPS format
-testdot Test the installation of graphviz
-thtml Generate HTML file for class diagram
-tlatex Generate images using LaTeX/Tikz format
-tlatex:nopreamble Generate images using LaTeX/Tikz format without preamble
-tpdf Generate images using PDF format
-tpng Generate images using PNG format (default)
-tscxml Generate SCXML file for state diagram
-tsvg Generate images using SVG format
-ttxt Generate images with ASCII art
-tutxt Generate images with ASCII art using Unicode characters
-tvdx Generate images using VDX format
-txmi Generate XMI file for class diagram
-v[erbose] Have log information
-version Display information about PlantUML and Java versions
-xmlstats Output general statistics in file plantuml-stats.xml