簡體   English   中英

在 Intellij (Java) 中使用命令行編譯時如何修復“錯誤:com.fasterxml.jackson.databind 包不存在”

[英]How to fix "error: package com.fasterxml.jackson.databind does not exist" when compiling using command line in Intellij (Java)

我一直在嘗試使用javac Main.java格式編譯我的 Java 代碼,但由於某種原因,編譯器說我的包不存在,事實上它在項目結構中,這是一個屏幕截圖:

我的代碼的文件結構

確切的錯誤是: Main.java:1: error: package com.fasterxml.jackson.databind does not exist import com.fasterxml.jackson.databind.ObjectMapper;

我的代碼在我的 Main.java 中如下所示:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;

import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Duration;
import java.time.Instant;
import java.time.ZoneId;


public final class Main {
    public static void main(String[] args) throws Exception {
        if (args.length != 1) {
            System.out.println("Usage: Main [file path]");
            return;
        }

        UdacisearchClient client =
                new UdacisearchClient(
                        "CatFacts LLC",
                        17,
                        8000,
                        5,
                        Instant.now(),
                        Duration.ofDays(180),
                        ZoneId.of("America/Los_Angeles"),
                        "555 Meowmers Ln, Riverside, CA 92501");

        Path outputPath = Path.of(args[0]);
        
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.registerModule(new JavaTimeModule());
        objectMapper.writeValue(Files.newBufferedWriter(outputPath), client);

        System.out.println("Wrote to: "+ outputPath.toAbsolutePath());
        UdacisearchClient deserialized = objectMapper.
                readValue(Files.newBufferedReader(outputPath), UdacisearchClient.class);

        System.out.println("Deserialized: " + deserialized);

    }
}

整個代碼應該像這樣javac Main.java然后java Main client.json 當我嘗試通過轉到RunEdit Configurations並通過添加client.json作為我的程序的參數來編譯它時,它就像一個魅力,我的對象在client.json文件中被序列化為一個 json 對象但是當我使用編譯時命令行它說沒有找到包。 我嘗試使用的任何其他依賴項都會發生相同的錯誤。 應該注意的是,當我從我的依賴項中實例化對象時,它看起來很好,因為與這些對象相關的import行不是紅色的。 所以我想我的問題在於我的命令行編譯或我的 Intellij 環境。 我已經嘗試了許多在線提出的解決方案,但問題仍然存在。 我需要一些幫助。

事實證明,解決方案很簡單。

首先編譯lib文件夾和Main.java中的庫:

javac -cp ".;lib/*" Main.java

然后運行我的Main類(包含我的main函數):

java -cp ".;lib/*" Main

我缺少點“ . ”和分號

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM