Thread: [Doxygen-users] doxywizard can't run PlantUML
Brought to you by:
dimitri
From: Michael S. P. <msp...@ra...> - 2015-05-19 15:04:46
|
I am trying to use the doxywizard with PlantUML. PlantUML works fine by itself. But when the doxywizard gets to the step to invoke PlantUML, it throws up a dialog saying "choose the program you want to use to open this file: java.exe". Why is it trying to "open" java.exe? It should just run it! I'm on Windows 7 Professional, 64-bit. Doxygen is 1.8.9.1 installed from the binary distribution doxygen-1.8.9.1-setup.exe. Any help is appreciated! |
From: rkennerly <rke...@gm...> - 2015-07-01 16:56:53
|
MikePelley wrote > I am trying to use the doxywizard with PlantUML. PlantUML works fine by > itself. But when the doxywizard gets to the step to invoke PlantUML, it > throws up a dialog saying "choose the program you want to use to open this > file: java.exe". Why is it trying to "open" java.exe? It should just run > it! I'm on Windows 7 Professional, 64-bit. Doxygen is 1.8.9.1 installed > from the binary distribution doxygen-1.8.9.1-setup.exe. > > Any help is appreciated! I found a work-around for this exact problem by side-stepping the "java.exe" shortcut that is installed by the java installer (java version "1.8.0_45") at "C:\ProgramData\Oracle\Java\javapath". Look at your "Path" environment variable in a command prompt window (type "path") and see if the directory for java includes symlink entries as it does on my system (Win7 64 bit). If you look at "properties" for the shortcut called "java.exe" you can see where it points to the real executable: C:\ProgramData\Oracle\Java\javapath>dir Directory of C:\ProgramData\Oracle\Java\javapath ... 07/01/2015 09:01 AM <SYMLINK> java.exe [C:\Program Files (x86)\Java\jre1.8.0_45\bin\java.exe] So, I wrote a short batch file to prepend the actual install directory of java to the front of my path that I can run before running doxygen (in the same Command Prompt window): REM Put the "real" java path in front of the one with a symlink to work with doxygen: set Path=C:\Program Files (x86)\Java\jre1.8.0_45\bin;%Path% Now Plantuml diagrams are created fine via doxygen. I would NOT recommend modifying your "Path" environment variable permanently because this could open various security holes or break other things. Hopefully someone will figure out the underlying problem with how java is launched from doxygen and make plantuml work out-of-the-box. -- View this message in context: http://doxygen.10944.n7.nabble.com/doxywizard-can-t-run-PlantUML-tp7188p7257.html Sent from the Doxygen - Users mailing list archive at Nabble.com. |
From: Christoph L. <chr...@li...> - 2015-07-02 16:13:44
|
Am 01.07.2015 um 18:32 schrieb rkennerly: > MikePelley wrote >> I am trying to use the doxywizard with PlantUML. PlantUML works fine by >> itself. But when the doxywizard gets to the step to invoke PlantUML, it >> throws up a dialog saying "choose the program you want to use to open this >> file: java.exe". Why is it trying to "open" java.exe? It should just run >> it! I'm on Windows 7 Professional, 64-bit. Doxygen is 1.8.9.1 installed >> from the binary distribution doxygen-1.8.9.1-setup.exe. >> >> Any help is appreciated! > I found a work-around for this exact problem by side-stepping the "java.exe" > shortcut that is installed by the java installer (java version "1.8.0_45") > at "C:\ProgramData\Oracle\Java\javapath". Look at your "Path" environment > variable in a command prompt window (type "path") and see if the directory > for java includes symlink entries as it does on my system (Win7 64 bit). If > you look at "properties" for the shortcut called "java.exe" you can see > where it points to the real executable: > > C:\ProgramData\Oracle\Java\javapath>dir > Directory of C:\ProgramData\Oracle\Java\javapath > ... > 07/01/2015 09:01 AM <SYMLINK> java.exe [C:\Program Files > (x86)\Java\jre1.8.0_45\bin\java.exe] > > So, I wrote a short batch file to prepend the actual install directory of > java to the front of my path that I can run before running doxygen (in the > same Command Prompt window): That's becoming a pain though as soon as the JRE is updated. I had this issue, too; it appears that, as of recently, Windows refuses to execute symbolic links with an ".exe" extension. On the interwebs there are some hints that this change in behaviour was introduced with security update KB3039066 (see https://support.microsoft.com/en-us/kb/3039066), and indeed selectively uninstalling that update fixed the problem for me. (Obviously you'll have to live with an unpatched potential security issue instead, so you may choose not to go that way.) |
From: rkennerly <rke...@gm...> - 2015-07-02 23:32:28
|
Christoph Lipka wrote > Am 01.07.2015 um 18:32 schrieb rkennerly: >> MikePelley wrote >>> I am trying to use the doxywizard with PlantUML. PlantUML works fine by >>> itself. But when the doxywizard gets to the step to invoke PlantUML, it >>> throws up a dialog saying "choose the program you want to use to open >>> this >>> file: java.exe". Why is it trying to "open" java.exe? It should just >>> run >>> it! I'm on Windows 7 Professional, 64-bit. Doxygen is 1.8.9.1 >>> installed >>> from the binary distribution doxygen-1.8.9.1-setup.exe. >>> >>> Any help is appreciated! >> I found a work-around for this exact problem by side-stepping the >> "java.exe" >> shortcut that is installed by the java installer (java version >> "1.8.0_45") >> at "C:\ProgramData\Oracle\Java\javapath". Look at your "Path" >> environment >> variable in a command prompt window (type "path") and see if the >> directory >> for java includes symlink entries as it does on my system (Win7 64 bit). >> If >> you look at "properties" for the shortcut called "java.exe" you can see >> where it points to the real executable: >> >> C:\ProgramData\Oracle\Java\javapath>dir >> Directory of C:\ProgramData\Oracle\Java\javapath >> ... >> 07/01/2015 09:01 AM > <SYMLINK> > java.exe [C:\Program Files >> (x86)\Java\jre1.8.0_45\bin\java.exe] >> >> So, I wrote a short batch file to prepend the actual install directory of >> java to the front of my path that I can run before running doxygen (in >> the >> same Command Prompt window): > > That's becoming a pain though as soon as the JRE is updated. > > I had this issue, too; it appears that, as of recently, Windows refuses > to execute symbolic links with an ".exe" extension. On the interwebs > there are some hints that this change in behaviour was introduced with > security update KB3039066 (see > https://support.microsoft.com/en-us/kb/3039066), and indeed selectively > uninstalling that update fixed the problem for me. (Obviously you'll > have to live with an unpatched potential security issue instead, so you > may choose not to go that way.) Yes - I see the problem has wider scope than I thought; I tried other symlinks (created with mklink.exe from command prompt) and indeed I cannot execute programs through these symlinks via explorer but can use them successfully from command prompt. I'm not a Java developer (C++) so I don't know what the scope of this problem is (how many programs are affected given that there are other ways to run java), but I found a link about this problem on an Oracle discussion thread from April 1, 2015, so the problem has been around for at least three months: https://community.oracle.com/thread/3695801 <https://community.oracle.com/thread/3695801> As of now, I'm launching doxygen from Visual Studio in an nmake project and I'm patching the path there (as above) - this will have to suffice until Oracle fixes the problem or offers a safe alternative. -- View this message in context: http://doxygen.10944.n7.nabble.com/doxywizard-can-t-run-PlantUML-tp7188p7262.html Sent from the Doxygen - Users mailing list archive at Nabble.com. |
From: Christoph L. <chr...@li...> - 2015-08-20 04:10:43
|
In the batch file I'm using to run Doxygen, I've now added the following subroutine to get around the problem: ------------------------------ ------------------------------ If you need to use doxywizard to actually run Doxygen (as opposed to just generating a config file for it), you could launch doxywizard via a batch file, using the very same code snippet; as far as I know that should do the job as well. -- View this message in context: http://doxygen.10944.n7.nabble.com/doxywizard-can-t-run-PlantUML-tp7188p7324.html Sent from the Doxygen - Users mailing list archive at Nabble.com. |
From: Christoph L. <chr...@li...> - 2015-08-20 04:36:31
|
Sorry the code got truncated; I should probably have posted directly to the list. Here's the code again: ------------------------------------------------ :JAVA_SYMLINK_FIX rem set JAVA_EXE to whatever java.exe is found via the path call :FIND_IN_PATH JAVA_EXE java.exe rem set TRUE_JAVA_EXE to the actual file java.exe points to (if it is a rem symlink), or an empty string otherwise call :FIND_SYMLINK TRUE_JAVA_EXE "%JAVA_EXE%" rem if the java.exe found via the path is not a symlink, we're done if "%TRUE_JAVA_EXE%" == "" goto :EOF echo "%JAVA_EXE%" is a symlink pointing to "%TRUE_JAVA_EXE%" rem set JAVA_EXE_DIR to the directory in which the actual java.exe resides call :SET_DIR JAVA_EXE_DIR "%TRUE_JAVA_EXE%" rem prepend JAVA_EXE_DIR to the path variable set PATH=%JAVA_EXE_DIR%;%PATH% goto :EOF :FIND_IN_PATH set %1=%~dp$PATH:2%2 goto :EOF :FIND_SYMLINK rem Sets the environment variable named by %1 to the file pointed to by %2 rem if that's a symlink.Sets the environment variable to an empty string rem otherwise. set %1= for /F "usebackq tokens=2 delims=[]" %%i in (`dir "%~2" /N`) do set %1=%%i goto :EOF :SET_DIR rem Sets the environment variable named by %1 to the directory of the file rem named by %2. set %1=%~dp2 goto :EOF ------------------------------------------------ Am 20.08.2015 um 05:15 schrieb Christoph Lipka: > In the batch file I'm using to run Doxygen, I've now added the following > subroutine to get around the problem: > > ------------------------------ > > ------------------------------ > > If you need to use doxywizard to actually run Doxygen (as opposed to just > generating a config file for it), you could launch doxywizard via a batch > file, using the very same code snippet; as far as I know that should do the > job as well. > > > > -- > View this message in context: http://doxygen.10944.n7.nabble.com/doxywizard-can-t-run-PlantUML-tp7188p7324.html > Sent from the Doxygen - Users mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > _______________________________________________ > Doxygen-users mailing list > Dox...@li... > https://lists.sourceforge.net/lists/listinfo/doxygen-users > |