diff --git a/docs/conf.py b/docs/conf.py
index f4c1c5a..e84f597 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -102,3 +102,28 @@
 # -- Options for plantuml ----------------------------------------------------
 
 plantuml_output_format = 'svg_img'
+
+# if plantuml wrapper executable is specified use it.
+_p=os.environ.get('PLANTUML')
+if _p is None:
+    # if a specific jar file is specified use it with an "inline" wrapper
+    jar=os.environ.get('PLANTUML_JAR_PATH')
+    if jar is not None:
+        # if JAVA_HOME look for the JVM under that location
+        java_home=os.environ.get('JAVA_HOME')
+        if java_home is not None:
+            java=os.path.join(java_home, "bin", "java")
+        else:
+            # if not, look for JVM on the PATH
+            import shutil
+            java=shutil.which("java")
+        # if the JVM does not exist, fall back to java
+        if not os.path.exists(java):
+                java='java'
+        # Set the wrapper command
+        _p="%s -Djava.awt.headless=true -Djava.net.useSystemProxies=true -jar %s" % (java, jar)
+
+# if a plantuml executable was discovered, use that, or leave the default value
+# unchanged
+if _p is not None:
+    plantuml=_p
\ No newline at end of file
