如何解决doxygen错误:运行PlantUML时出现的问题?
我已经成功地使用了一段时间了。我还使用graphviz中的点。现在我正在尝试集成PlantUML。我安装了java并下载了plantuml.jar。我在我的一个doxygen注释块中添加了一个简单的示例如何解决doxygen错误:运行PlantUML时出现的问题?,doxygen,plantuml,Doxygen,Plantuml,我已经成功地使用了一段时间了。我还使用graphviz中的点。现在我正在尝试集成PlantUML。我安装了java并下载了plantuml.jar。我在我的一个doxygen注释块中添加了一个简单的示例 /*! \brief get the server's response to our upload \returns a \ref ServerResponse \startuml{getServerUploadResponse.png} "gettin
/*!
\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"
但是多西根给了我一个错误;这是我的控制台输出(我在win7上使用mingw)
在包含名为Java的文件夹的路径中可能有一个条目。这个从命令提示符运行的命令将让您知道/F%F在(“java”)中的位置:
DO ECHO%~$PATH:F
。如果是这种情况,请在路径中该条目之前插入Java路径。我发现这个问题是因为我在一台机器上遇到了这个问题,而不是在另一台机器上
这似乎是ShellExecuteEx()的另一个bug,除了symlink()的问题之外。除了添加.exe扩展名以使其与java文件夹不匹配之外,我不知道如何修复它。我还发现同样的问题也发生在当前工作目录中的Java文件夹上。在本例中,ShellExecuteEx()似乎在查看路径之前使用Java文件夹。因此,修改路径没有帮助
如果Windows上的SHELLEXECUTEINFO没有扩展名,则将“.exe”附加到其成员lpFile中,或者永远不依赖正确设置的路径,这可能是另一个很好的理由。问题是PlantUML无法定位
点
可执行文件
PlantUML要求:
可执行文件位于Dot
环境变量中PATH
环境变量设置为可执行GRAPHVIZ_DOT
@startuml
和@enduml
标记之间的内容Dot
-根据图表类型生成图表(例如,活动图表不需要Dot
)set“GRAPHVIZ\u DOT=c:\path\to\GRAPHVIZ\bin\DOT.exe”
doxygen-doxyconfig
GRAPHVIZ_Dot
环境变量定位Dot
可执行文件
我不知道为什么Doxygen没有将
Dot
设置正确地移交给PlantUML。此外,此错误通常仅在Windows上弹出。在GNU/Linux上,Dot
可执行文件通常位于路径中,可以通过PlantUML找到 问题是因为JRE放置的路径中的一些文件夹是符号链接。显然,符号链接可以从命令行执行,但不能从其他程序执行
在我的系统上,路径设置为C:\ProgramData\Oracle\Java\javapath,这是指向C:\ProgramData\Oracle\Java\javapath\U target\U 403710984的符号链接
将一个替换为另一个可以修复此问题
请注意,您可能需要在每次升级JRE时重新查看此问题。这是一个很好的建议,但并没有解决我的问题。我发现在我的路径中有一个java文件夹,但是在它之前插入java的“true”路径并没有解决问题。我仍然得到与上面描述的相同的错误。我遵循了提供的链接,但那里的建议与您的答案几乎相同。。。处理java.exesymlinks@KaneAnderson你能找到问题的答案吗?我尝试删除所有java路径,只包括硬编码的版本变量,但我仍然从doxygen得到相同的错误。
$ 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
$