错误:编译 Java 文件时“包 com.fasterxml.jackson.databind 不存在”

Posted

技术标签:

【中文标题】错误:编译 Java 文件时“包 com.fasterxml.jackson.databind 不存在”【英文标题】:Error: "package com.fasterxml.jackson.databind does not exist" when compiling Java file 【发布时间】:2021-12-07 09:44:54 【问题描述】:

我在 Eclipse 上创建了一个 Maven 项目,并在 pom.xml 文件中添加了以下依赖项:

<dependency>
        <groupId>com.fasterxml</groupId>
        <artifactId>jackson-xml-databind</artifactId>
        <version>0.6.2</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.13.0</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.13.0</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.13.0</version>
</dependency>  

然后我用下面的代码检查依赖是否可以编译:

import com.fasterxml.jackson.databind.ObjectMapper;

public class App 

    
    public static void main(String[] args) 
        ObjectMapper mapper = new ObjectMapper();
        
    


虽然 Eclipse 没有显示任何错误,但当我使用以下命令编译它时:

$ javac -sourcepath src  src\main\java\App.java

我收到以下 3 个错误:

src\main\java\App.java:6:错误:com.fasterxml.jackson.databind 包不存在 导入 com.fasterxml.jackson.databind.ObjectMapper; ^ src\main\java\App.java:16:错误:找不到符号 ObjectMapper 映射器 = 新 ObjectMapper(); ^ 符号:类 ObjectMapper 地点:类App src\main\java\App.java:16:错误:找不到符号 ObjectMapper 映射器 = 新 ObjectMapper(); ^ 符号:类 ObjectMapper 地点:类App 3 个错误

请记住,依赖项的相应 JAR 文件已安装到计算机上的 maven 存储库中

【问题讨论】:

你不是用maven编译,而是用javac。所以它希望那些 jar 文件在类路径上而不是在 mvn 【参考方案1】:

看起来你的项目是基于 maven 的,使用 maven 命令编译它: cd 到包含 pom.xml 的目录并运行: mvn 编译

【讨论】:

我做到了,现在如何使用命令窗口运行主类? 运行它:mvn exec:java -Dexec.mainClass="com.mycompany.app.App"

以上是关于错误:编译 Java 文件时“包 com.fasterxml.jackson.databind 不存在”的主要内容,如果未能解决你的问题,请参考以下文章

java之异常

编译java文件时提示找不到包

java源文件编译时要放在哪里?

java编译 为啥显示找不到文件

C语言编译时的错误

Tomcat 运行后 class 文件不编译