Java 8 jdk 8的Java Doclet API更改
我是Java的新手。我试图升级到jdk 1.8,在执行“gradle测试”时发现以下错误:Java 8 jdk 8的Java Doclet API更改,java-8,doclet,Java 8,Doclet,我是Java的新手。我试图升级到jdk 1.8,在执行“gradle测试”时发现以下错误: /u01/sv/home/sv900t1/sv_test/test_Suites/SeleniumLibraries/src/main/java/com/csgi/svtest/selenium/CustomWriter.java:57:错误:找不到符号 h2(“类”+classDoc.toString()); ^ 符号:方法h2(字符串) 地点:CustomWriter类 /u01/sv/home/sv
/u01/sv/home/sv900t1/sv_test/test_Suites/SeleniumLibraries/src/main/java/com/csgi/svtest/selenium/CustomWriter.java:57:错误:找不到符号
h2(“类”+classDoc.toString());
^
符号:方法h2(字符串)
地点:CustomWriter类
/u01/sv/home/sv900t1/sv_test/test_Suites/SeleniumLibraries/src/main/java/com/csgi/svtest/selenium/CustomWriter.java:58:错误:找不到符号
printHyperLink(classDoc.toString()+“.html”,“类说明
”,true);
^
符号:方法printHyperLink(字符串、字符串、字符串、布尔值)
地点:CustomWriter类
我提到
及
(我们的代码导入:import com.sun.tools.doclets.formats.html.SubWriterHolderWriter;)
并发现许多API,如h2()、printHyperLink()、hr()、table()、tableHeaderStart()、tableHeaderEnd()、tableEnd()、pre()、strong()、preEnd()、ul()、print()、li()、ulEnd()、printHtmlHeader()、center()、today()、printTop()、navLinks()、printBottom()和PrintBodyHtmlLend()都已被删除
是否有一种快速的解决方法可以让我们绕过符号错误?
或者我们应该用现有的API替换缺少的API。作为一名参赛者,这对我来说是一项艰巨的工作。有没有关于如何做到这一点的现有例子?我在网上搜索了很多,但没有找到任何有用的东西
java中的代码用于使用自定义系统测试标记输出Javadoc页面。感谢您的帮助,我们的时间不够 问题出在这里。
com.sun.tools.*
包中的类应视为内部API。Java文档中有明确的警告,指出您不应该编写针对这些API的代码
例如:
- 也许你可以找到一个真正的开源Doclet代码库,你可以修改它
- 也许你可以找到一个商业供应商或顾问来为你做这项工作
- 或者,您可能只是“吸取教训”,重写代码以使用最新版本的(内部)API。生活在未来你可能需要承受更多痛苦的可能性中
- 或者。。。您可以在构建/测试箱上重新安装Java7,并(仅)将其用于运行自定义Doclet
更新-已经指出,上面的“规则”适用于
sun.
软件包。然而:
- 该文档没有提到任何关于
包的内容,因此不能推断它们与com.sun.*
、java.*
以及其他明确声明为java支持的API保留的包属于同一类别javax.*
- 还有其他明确声明不受支持的
包的示例。例如,甲骨文公司这样说:com.sun.*
软件包是一个内部的、不受支持的软件包,不能由外部应用程序使用 JDK内部包com.sun.media.sound
和子包已添加到受限包列表中,在使用安全管理器运行时无法直接使用 此版本中已删除包com.sun.corba.se
中包含的apt工具及其相关APIcom.sun.mirror
结论,即使没有明确声明
com.sun.*
包是内部的,Oracle现在也很抱歉,但这个答案是不正确的。您将sun.*
软件包与com.sun.*
软件包混为一谈,其中有一条众所周知的警告。例如,如果不使用com.sun.*
,就不可能编写JNDI程序。。。大概但在本例中,类源代码明确警告它不是受支持的API。
/u01/sv/home/sv900t1/sv_test/Test_Suites/SeleniumLibraries/src/main/java/com/csgi/svtest/selenium/CustomWriter.java:57: error: cannot find symbol
h2("Class "+classDoc.toString());
^
symbol: method h2(String)
location: class CustomWriter
/u01/sv/home/sv900t1/sv_test/Test_Suites/SeleniumLibraries/src/main/java/com/csgi/svtest/selenium/CustomWriter.java:58: error: cannot find symbol
printHyperLink(classDoc.toString()+".html","","Class description<br>",true);
^
symbol: method printHyperLink(String,String,String,boolean)
location: class CustomWriter