Debian10下JShell查看System.out.println文档提示无文档的解决方法
在Debian 10的JShell中查看Java标准方法文档的解决方案
我之前在Debian 10上也碰到过一模一样的问题!折腾了好一会儿才搞明白,Debian打包的OpenJDK文档放在了JShell默认不会扫描的路径下,所以才会出现<no documentation found>的提示。给你分享几个有效的解决办法:
方法一:启动JShell时手动指定文档路径
先确认
openjdk-10-jdk-doc包的API文档安装路径,运行以下命令:dpkg -L openjdk-10-jdk-doc你会看到输出里有一个类似
/usr/share/doc/openjdk-10-jdk/api的目录,这就是API文档的根目录。用指定文档索引的方式启动JShell:
jshell -J-Djdk.javadoc.index=/usr/share/doc/openjdk-10-jdk/api验证效果:启动后输入
System.out.println(然后连续按Tab键,就能看到这个方法的官方文档提示了。
方法二:配置环境变量,永久生效
如果不想每次启动JShell都加参数,可以把文档路径配置到环境变量里:
打开你的bash配置文件(比如
~/.bashrc),添加一行:export JSHELL_OPTS="-J-Djdk.javadoc.index=/usr/share/doc/openjdk-10-jdk/api"让配置立即生效:
source ~/.bashrc之后直接输入
jshell启动,就能正常查看标准方法的文档了。
补充说明
这个问题本质上是Debian的OpenJDK打包策略导致的——官方JDK的文档路径和Debian打包后的路径不一致,JShell默认找不到索引,所以需要我们手动指定文档的根目录。你已经排除了类路径问题,那这个路径配置就是关键啦。
内容的提问来源于stack exchange,提问作者Markus
相关产品推荐
相关产品推荐

