gpt4 book ai didi

java - 使用Google Guava时打包JAR的主类抛出错误

转载 作者:行者123 更新时间:2023-12-02 02:42:48 24 4
gpt4 key购买 nike

我创建了一个新项目来设置 Google Guava。

这是我的 POM.xml。

<dependencies>
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>InetAddressTest</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>

这是我的主要方法。

public static void main(String[] args) throws Exception {
try {
System.out.println(InetAddresses.isInetAddress("127.0.0.1"));
} catch (NoClassDefFoundError exp) {
System.out.println(exp);
}
}

我可以在我的 IDE 中运行它。

我可以用 mvn package 来打包它

当我运行它时java -jar target/<NAME>.jar ,它抛出异常 java.lang.NoClassDefFoundError: com/google/common/net/InetAddresses

我尝试浏览解决方案。但到目前为止他们还没有发挥作用。

我猜测(基于其他问题)我缺少 Guava 的一些依赖项?

最佳答案

您有两个选择:-

1) 在执行 Java 命令时,使用 -cp 或 -classpath 选项列出所有必需的 jar 文件。

2) 通过在 pom.xml 中使用 Maven Shade 插件来包含 jar 中的所有依赖项

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<finalName>uber-${project.artifactId}-${project.version}</finalName>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>

关于java - 使用Google Guava时打包JAR的主类抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45150752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com