【问题标题】:intellij JavaDoc browser plugin can't find javaxintellij JavaDoc 浏览器插件找不到 javax
【发布时间】:2015-10-03 10:01:41
【问题描述】:

我在 Arch linux x64 机器上,我安装了 intellij idea,但是每当我打开一个项目时,JavaDoc 浏览器插件就会出现 startupabortedexception。

我查看了我的idea.log,发现它找不到javax.servlet.Servlet,我禁用了插件以打开一个java项目,实际上当我输入import javax;时它说它找不到找到javax。

我安装了 java-openjfx,但 intellij 仍然找不到它,在这种情况下该怎么办? .

环境信息

jdk:openjdk 1.8.0_60 64 位。
intellij 版本:14.1.5 社区版。

目标

我的目标是让 JavaDoc 浏览器插件工作而不是在 javax.servlet 中编程,我现在不打算使用 java 进行任何 Web 开发。

【问题讨论】:

    标签: intellij-idea classnotfoundexception


    【解决方案1】:

    如果您没有 Maven 项目,您只需将 jar 添加到项目中即可。您缺少的可以从以下位置下载:

    http://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/3.1.0 (只需点击“下载(JAR)”按钮)

    【讨论】:

    • 我将 jar 文件复制到了我的类路径(/usr/lib/jvm/java-8-openjdk/jre/lib 在我的系统中),我现在可以看到 javax 但看不到 javax.servlet、intellij说它找不到servlet包虽然jar文件包含它
    • @niceman 我认为将jar 添加到内部JDK 目录可能不是一个好主意。检查如何仅将 jar 添加到单个项目:*.com/questions/1051640/… 如果它不起作用,也许尝试添加整个 JEE 库? mvnrepository.com/artifact/javax/javaee-api/7.0
    • 我想我的问题没有说清楚,我会编辑它
    【解决方案2】:

    javax.servlet.Servlet 类不是标准 JDK 的一部分,它是 JEE 的一部分,因此您必须将 servlet-api.jar 添加到您的类路径中。

    如果您的项目是 Maven 项目,您可以像这样添加依赖项:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>
    

    你可能想添加

    <scope>provided</scope>
    

    因为这种依赖关系很可能存在于您的应用程序服务器中。

    【讨论】:

    • 我没有一个maven项目,我有一个IDE插件,它不起作用并且需要javax,除了javax.servlet没有找到而且整个javax没有找到,我知道javax 包含 swing,这绝对是标准 JDK 的一部分
    • hmmm 但是 servlet 确实是 JEE 的一部分,但是 intellij 社区如何使用它,据我了解 JEE 不是免费的(是吗?)
    • @niceman JEE 是免费的。正如我们在 Oracle 网站上看到的“Java EE 技术是许多供应商可以实施的一组标准。”。 Oracle 在 Glassfish Server 中提供了示例实现,它是开源 (GNU GPL)。
    • @gogowitczak 对不起我的错误,我想我已经习惯了“企业版!=免费”:)