java.lang.ClassNotFoundException: io.quarkus.runtime.Quarkus

java.lang.ClassNotFoundException: io.quarkus.runtime.Quarkus

我正在尝试 运行 运行quarkus 应用程序的 ner jar,它将在 http 上侦听端口 9411。

以编程方式使用 UrlClassLoader,当我尝试加载它抛出的 jar (还有 java -jar) 1.java.lang.ClassNotFoundException: io.quarkus.runtime.Quarkus

2.java.lang.reflect.InvocationTargetException 这是代码片段,

        URLClassLoader loader = new URLClassLoader(
            new URL[]{ new File(<location of runner jar>).toURI().toURL()});
        Thread.currentThread().setContextClassLoader(loader);
        Class<?> mainClass = loader.loadClass("io.quarkus.runner.GeneratedMain"); 
        Method mainMethod = mainClass.getMethod("main", String[].class);
        mainMethod.invoke(null, (Object) new String[]{});

另一个观察结果是,当我将 /lib 文件夹放在 运行ner jar 位置时,它加载成功意味着它完全需要 lib 文件夹。

如何让我的代码只适用于 运行ner jar?

要生成包含 运行 应用程序所需的所有库的 fat jar,请使用 属性 quarkus.package.uber-jar=true(您可以将其添加到 src/main/resources/application.properties 或通过它作为一个系统 属性 当 运行 构建时)。

使用 mvn clean package 开始时出现以下错误:

 Unrecognized configuration key "quarkus.package.uber-jar" was provided

我找到了

 quarkus.package.type=uber-jar 

作为 属性.

我比较喜欢的是设置

 <quarkus.package.type>uber-jar</quarkus.package.type>

在 pom 属性中。

https://github.com/fluentcodes/sandbox/tree/java-quarkus-empty