[英]Running DocumentationTool on sources from OpenJDK 11
I am trying to run DocumentationTool
on sources from OpenJDK 11. 我试图在OpenJDK 11的源代码上运行
DocumentationTool
。
The output looks like this: 输出如下所示:
Constructing Javadoc information...
/Users/Borkdude/git/openjdk-jdk11/src/java.base/share/classes/java/lang/IllegalStateException.java:26: error: package exists in another module: java.base
package java.lang;
and this repeats about a 100 times. 这重复了大约100次。
The code I have looks like this in Clojure: 我在Clojure中看到的代码如下:
(import '[javax.tools ToolProvider])
(let [dt (ToolProvider/getSystemDocumentationTool)
fm (.getStandardFileManager dt nil nil nil)
files (.getJavaFileObjectsFromFiles
fm
(filter #(str/ends-with? (.getPath %) ".java")
(file-seq (io/file "/Users/Borkdude/git/openjdk-jdk11/src/java.base/share/classes/java/lang"))))
task (.getTask dt nil fm nil nil nil files)]
(.call task))
How do I get rid of the error: 如何摆脱错误:
error: package exists in another module: java.base
package java.lang;
? ?
You can either compile the entire module, or you need to "patch" the module. 您可以编译整个模块,也可以“修补”模块。 Here's an example of each, assuming you unzip
src.zip
to /tmp
. 这是每个的示例,假设您将
src.zip
解压缩到/tmp
。
To compile the entire module: 要编译整个模块:
(import '[javax.tools ToolProvider])
(require '[clojure.string :as str])
(let [dt (ToolProvider/getSystemDocumentationTool)
fm (.getStandardFileManager dt nil nil nil)
files (.getJavaFileObjectsFromFiles
fm
(filter #(str/ends-with? (.getPath %) ".java")
(file-seq (io/file "/tmp/src/java.base/"))))
task (.getTask dt nil fm nil nil nil files)]
(.call task))
To patch the module (ie compile only certain sources): 修补模块(即只编译某些来源):
(let [dt (ToolProvider/getSystemDocumentationTool)
fm (.getStandardFileManager dt nil nil nil)
files (.getJavaFileObjectsFromFiles
fm
(filter #(str/ends-with? (.getPath %) ".java")
(file-seq (io/file "/tmp/src/java.base/java/lang"))))
opts ["--patch-module" "java.base=/tmp/src"]
task (.getTask dt nil fm nil nil opts files)]
(.call task))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.