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

nhjlsmyf  于 2022-11-15  发布在  Java
关注(0)|答案(2)|浏览(144)

我正在尝试运行quarkus应用程序的runner jar,该应用程序将通过http上的端口9411进行侦听。
以编程方式使用UrlClassLoader,当我尝试加载jar时,它抛出(也使用java -jar)1.java.lang.ClassNotFoundException:io.quarkus.runtime.Quarkus
下面是一段代码,

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文件夹放在runner jar位置时,它成功加载,这意味着它需要lib文件夹。
如何使我的代码只与runner jar一起工作?

oogrdqng

oogrdqng1#

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

0mkxixxg

0mkxixxg2#

使用mvn clean包启动时出现以下错误:

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

相关问题