从命令提示符运行具有外部依赖项的 Java 类?

问题描述 投票:0回答:1

我想知道是否可以使用 Windows 命令提示符运行使用外部库的 Java 类。

我有以下最小示例 Java 类,其中我仅使用

Jackson
库来使用
ObjectMapper
类创建 JSON 文件:

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;

public class Test
{
    public static void main(String[] args) throws IOException
    {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.writeValue(new File("test.json"), "test");

        System.out.println("Finished!");
    }
}

我最初在 IntelliJ IDE 中使用 Maven 编译了这个项目,并在

Jackson
文件中为
pom.xml
设置了正确的依赖项。

然后我想使用以下命令在命令提示符下运行生成的

Test.class
文件:

java Test

结果:

Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
        at Test.main(Test.java:9)
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
        ... 1 more

我对 Java 的经验不是很丰富,而且我只使用过为我处理大部分后台链接的 IDE。我只知道可以使用

java
命令在 Windows CMD 中运行 Java 类,并且我假设这里它告诉我它无法正确链接
Jackson
库。

大多数现有的类似问题通常询问用户创建的类,我还没有找到外部依赖项的解决方案,例如 Maven 定义的依赖项。

是否可以使用 Windows 命令提示符运行使用外部库的 Java 类?

感谢您阅读我的帖子,感谢任何指导。

java maven dependencies
1个回答
0
投票

当项目需要任何类型的库时,我们可以直接使用Java中的pom.xml文件进行配置。所以它会正常工作,因为我们是通过xml文件配置的,不需要任何额外的配置。但最主要的是,当我们尝试使用命令提示符运行相同的程序时,它会将该库检查到 CLASSPATH 中,因此您需要通过 CLASSPATH 方式将其配置到 lib 文件夹中。因此,首先尝试在构建或清理构建之后放入 lib 文件夹,然后尝试此解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.