Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not A Problem
-
3.2.0
-
None
-
None
Description
In Windows10, I am consistently having this error generated:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:3.2.0:jar (attach-javadocs) on project work: MavenReportException: Error while generating Javadoc: [ERROR] Exit code: 1 - javadoc: error - cannot read options (The system cannot find the file specified) [ERROR] [ERROR] Command line was: cmd.exe /X /C "C:\java\x64\1.8.0-282-openjdk\jre\..\bin\javadoc.exe @options @argfile" [ERROR] [ERROR] Refer to the generated Javadoc files in 'C:\projects\scratch\work\target\apidocs' dir.
Extract the contents of the attached scratch.zip into Windows10, then simply run `mvn clean package` from the scratch directory, and you get the above error.
The error is not generated in Linux.
Investigations done
When `mvn clean package` fails in Windows10, if you change directory target\apidocs and run the generated javadoc.bat file directly, you get the exact same error above:
C:\projects\scratch\work\target\apidocs>
C:\projects\scratch\work\target\apidocs>javadoc.bat
C:\projects\scratch\work\target\apidocs>cmd.exe /X /C "C:\java\x64\1.8.0-282-openjdk\jre\..\bin\javadoc.exe @options @argfile"
javadoc: error - cannot read options (The system cannot find the file specified)
1 error
If I then modify the generated javadoc.bat file so that, instead of having this:
cmd.exe /X /C "C:\java\x64\1.8.0-282-openjdk\jre\..\bin\javadoc.exe @options @argfile"
you replace it with this:
cmd.exe /X /C "cd C:\projects\scratch\work\target\apidocs && C:\java\x64\1.8.0-282-openjdk\jre\..\bin\javadoc.exe @options @argfile"
... essentially ensuring the current and working directory of the shell executed by cmd.exe is that apidocs directory, then execute javadoc.bat again, the issue is resolved :
C:\projects\scratch\work\target\apidocs>cmd.exe /X /C "cd C:\projects\scratch\work\target\apidocs && C:\java\x64\1.8.0-282-openjdk\jre\..\bin\javadoc.exe @options @argfile" Loading source file C:\projects\scratch\work\src\main\java\org\examples\Bar.java... Loading source file C:\projects\scratch\work\src\main\java\org\examples\Foo.java... Constructing Javadoc information... Standard Doclet version 1.8.0_282 Building tree for all the packages and classes... Generating C:\projects\scratch\work\target\apidocs\org\examples\Bar.html... Generating C:\projects\scratch\work\target\apidocs\org\examples\Foo.html... Generating C:\projects\scratch\work\target\apidocs\org\examples\package-frame.html... Generating C:\projects\scratch\work\target\apidocs\org\examples\package-summary.html... Generating C:\projects\scratch\work\target\apidocs\org\examples\package-tree.html... Generating C:\projects\scratch\work\target\apidocs\constant-values.html... Generating C:\projects\scratch\work\target\apidocs\org\examples\class-use\Bar.html... Generating C:\projects\scratch\work\target\apidocs\org\examples\class-use\Foo.html... Generating C:\projects\scratch\work\target\apidocs\org\examples\package-use.html... Building index for all the packages and classes... Generating C:\projects\scratch\work\target\apidocs\overview-tree.html... Generating C:\projects\scratch\work\target\apidocs\index-all.html... Generating C:\projects\scratch\work\target\apidocs\deprecated-list.html... Building index for all classes... Generating C:\projects\scratch\work\target\apidocs\allclasses-frame.html... Generating C:\projects\scratch\work\target\apidocs\allclasses-noframe.html... Generating C:\projects\scratch\work\target\apidocs\index.html... Generating C:\projects\scratch\work\target\apidocs\help-doc.html...
This seems to be due to the way in Windows10 what the default directory is when cmd.exe is executed, which is slightly different compared to Windows7, which I also posted the question to stackoverflow:
Suggested fix
If the detected operation system is Windows10, add a "cd ..." command to ensure that javadoc.exe is executed from the correct directory.
Attachments
Attachments
Issue Links
- relates to
-
MJAVADOC-811 javadoc.bat fails to execute on Windows when project is not on drive C and AutoRun is configured
- Closed