java - 线程 "main"java.lang.NoClassDefFoundError : io/kubernetes/client/openapi/ApiException 中的异常

标签 java maven kubernetes

我试图重现 example in k8s-java在我的迷你 Maven 项目中。 但是,我一直遇到这个错误 - 线程“主”java.lang.NoClassDefFoundError 中的异常:io/kubernetes/client/openapi/ApiException。 我的maven工程是借自maven in 5 minutes并且只更改了几行。

  • App.java
package com.mycompany.app;

import io.kubernetes.client.openapi.ApiClient;
import io.kubernetes.client.openapi.ApiException;
import io.kubernetes.client.openapi.Configuration;
import io.kubernetes.client.openapi.apis.CoreV1Api;
import io.kubernetes.client.openapi.models.V1Pod;
import io.kubernetes.client.openapi.models.V1PodList;
import io.kubernetes.client.util.Config;
import java.io.IOException;


/**
 * A simple example of how to use the Java API
 *
 * <p>Easiest way to run this: mvn exec:java
 * -Dexec.mainClass="io.kubernetes.client.examples.Example"
 *
 * <p>From inside $REPO_DIR/examples
 */
public class App {
    public static void main(String[] args) throws IOException, ApiException {
      ApiClient client = Config.defaultClient();
      Configuration.setDefaultApiClient(client);
  
      CoreV1Api api = new CoreV1Api();
      V1PodList list =
          api.listPodForAllNamespaces(null, null, null, null, null, null, null, null, null);
      for (V1Pod item : list.getItems()) {
        System.out.println(item.getMetadata().getName());
      }
    }
  }

  • pom.xml
 <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.kubernetes</groupId>
      <artifactId>client-java</artifactId>
      <version>10.0.0</version>
    </dependency>
  </dependencies>
  • 命令
  1. mvn clean package
  2. java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
  • 错误
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: io/kubernetes/client/openapi/ApiException
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
        at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
        at java.lang.Class.getMethod0(Class.java:3018)
        at java.lang.Class.getMethod(Class.java:1784)
        at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:650)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:632)
Caused by: java.lang.ClassNotFoundException: io.kubernetes.client.openapi.ApiException
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        ... 7 more

感谢大家的帮助!

最佳答案

使用 mvn exec:java -D exec.mainClass=com.mycompany.app.App 运行

关于java - 线程 "main"java.lang.NoClassDefFoundError : io/kubernetes/client/openapi/ApiException 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64748939/

相关文章:

java - 不同的 Java 字节码反编译为完全相同的 p 代码和 java 代码

kubernetes - 在 Kubernetes 中使用完整的声明式方法

kubernetes - 如何向 AKS 上的 IPv4 或 IPv6 公开传入的入口流量?

maven-release-plugin 将快照部署到文件

Intellij 中的 JavaFX 和 Maven : JAVA_HOME set but "Unrecognized option --module-path" error persisting

kubernetes - 为不同环境配置不同的 pod 配置(Kubernetes + Google Cloud 或 Minikube)

java - 如何将java数组中的类型更改为扩展对象?

java - 我将如何为此程序创建最高分计数器以及将其放置在哪里?

java - 如何在类型输入中获得 .length

java - 软件包不存在 mvn clean install