我已经成功地使用doxygen一段时间了。我还使用了graphviz中的DOT。现在我正在尝试集成PlantUML。我安装了java并下载了plantuml.jar。我在我的doxygen注释块中添加了一个简单的示例
/*!
\brief get the server's response to our upload
\returns a \ref ServerResponse
\startuml{getServerUploadResponse.png} "getting the server response"
device -> server: test1
server --> device: test2
\enduml
*/..。并像这样设置doxygen配置文件:
HAVE_DOT = YES
PLANTUML_JAR_PATH = "Z:\Kane\softwareDev\tools\plantuml.jar"但是doxygen给了我一个错误;这是我的控制台输出(我在win7上使用了mingw )
$ doxygen doxyconfig
error: Problems running PlantUML. Verify that the command 'java -jar "Z:/Kane/softwareDev/tools\plantuml.jar" -h' works from the command line. Exit code: 1
$ java -jar "Z:/Kane/softwareDev/tools\plantuml.jar" -h
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:
-gui To run the graphical user interface
-tpng To generate images using PNG format (default)
-tsvg To generate images using SVG format
-teps To generate images using EPS format
-tpdf To generate images using PDF format
-tvdx To generate images using VDX format
-txmi To generate XMI file for class diagram
-thtml To generate HTML files for class diagram
-ttxt To generate images with ASCII art
-tutxt To generate images with ASCII art using Unicode characters
-o[utput] "dir" To generate images in the specified directory
-DVAR1=value To set a preprocessing variable as if '!define VAR1 value' were used
-Sparam1=value To set a skin parameter as if 'skinparam param1 value' were used
-r[ecurse] recurse through directories
-config "file" To read the provided config file before each diagram
-charset xxx To use a specific charset (default is windows-1252)
-e[x]clude pattern To exclude files that match the provided pattern
-metadata To retrieve PlantUML sources from PNG images
-version To display information about PlantUML and Java versions
-checkversion To check if a newer version is available for download
-v[erbose] To have log information
-quiet To NOT print error message into the console
-keepfiles To NOT delete temporary files after process
-h[elp] To display this help message
-testdot To test the installation of graphviz
-graphvizdot "exe" To specify dot executable
-p[ipe] To use stdin for PlantUML source and stdout for PNG/SVG/EPS generation
-encodesprite 4|8|16[z] "file" To encode a sprite at gray level (z for compression) from an image
-computeurl|-encodeurl To compute the encoded URL of a PlantUML source file
-decodeurl To retrieve the PlantUML source from an encoded URL
-syntax To report any syntax error from standard input without generating images
-language To print the list of PlantUML keywords
-nosuggestengine To disable the suggest engine when errors in diagrams
-checkonly To check the syntax of files without generating images
-failfast To stop processing as soon as a syntax error in diagram occurs
-failfast2 To do a first syntax check before processing files, to fail even faster
-pattern To print the list of Regular Expression used by PlantUML
-duration To print the duration of complete diagrams processing
-nbthread N To use (N) threads for processing
-nbthread auto To use 2 threads for processing
-author[s] To print information about PlantUML authors
-overwrite To allow to overwrite read only files
-printfonts To print fonts available on your system
If needed, you can setup the environment variable GRAPHVIZ_DOT.
$ echo $?
0
$ java -jar "Z:/Kane/softwareDev/tools\plantuml.jar" -version
PlantUML version 8026 (Sun Jun 07 04:19:09 CDT 2015)
(GPL source distribution)
Java(TM) SE Runtime Environment
Java HotSpot(TM) Client VM
1.8.0_45-b15
Windows 7
The environment variable GRAPHVIZ_DOT has not been set
Dot executable is c:\Program Files (x86)\Graphviz2.38\bin\dot.exe
Dot version: dot - graphviz version 2.38.0 (20140413.2041)
Installation seems OK. File generation OK
$ doxygen --version
1.8.9.1
$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
Java HotSpot(TM) Client VM (build 25.45-b02, mixed mode)
$ doxygen doxyconfig
error: Problems running PlantUML. Verify that the command 'java -jar "Z:/Kane/softwareDev/tools\plantuml.jar" -h' works from the command line. Exit code: 1
$发布于 2015-09-30 05:01:40
路径中可能有一个条目,其中包含名为Java的文件夹。从命令提示符运行的这个命令将告诉您位置:FOR /F %F IN ("java") DO ECHO %~$PATH:F。如果是这种情况,请在路径中该条目之前插入Java的路径。我找到这个是因为我在一台机器上遇到了这个问题,而不是在另一台机器上。
除了符号链接(doxywizard can't run PlantUML)的问题之外,这似乎是ShellExecuteEx()的另一个bug。除了添加.exe扩展名以使其与java文件夹不匹配之外,我不知道如何修复它。我还发现,当前工作目录中的Java文件夹也会出现同样的问题。在本例中,ShellExecuteEx()似乎在查看路径之前使用了Java文件夹。所以修改路径无济于事。
如果SHELLEXECUTEINFO没有扩展名,这可能是将".exe“附加到SHELLEXECUTEINFO的成员lpFile中的另一个很好的理由,或者永远不要依赖于正确设置的路径。
发布于 2016-05-24 21:01:24
问题是PlantUML无法找到Dot可执行文件。
PlantUML要求满足以下任一条件:
Dot可执行文件位于variable.GRAPHVIZ_DOT环境中。PATH环境变量设置为可执行文件。如果不是这样,它就不能工作!
工作流程如下:
Dot).提取@startuml和@enduml标记之间的内容。
Dot).
使用Dot生成图表-具体取决于图表类型(例如,活动图表不需要do
解决方案:
set "GRAPHVIZ_DOT=c:\path\to\graphviz\bin\dot.exe"doxygen doxyconfig现在,PlantUML能够通过使用GRAPHVIZ_DOT环境变量来定位Dot可执行文件。
我不知道为什么Doxygen不能将Dot设置正确地交给PlantUML。此外,此错误通常仅在Windows上弹出。在GNU/Linux上,Dot可执行文件通常位于PATH中,可以通过PlantUML找到。
发布于 2018-02-09 17:28:37
这个问题是因为JRE放置的路径中的一些文件夹是符号链接。显然,符号链接可以从命令行执行,但不能从其他程序执行。
在我的系统上,路径设置为C:\ProgramData\Oracle\Java\javapath,这是一个指向C:\ProgramData\Oracle\Java\javapath_target_403710984的符号链接
用一个替换另一个可以解决这个问题。
请注意,您可能需要在每次升级JRE时重新访问它。
https://stackoverflow.com/questions/30790538
复制相似问题