簡體   English   中英

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

[英]java.lang.ClassNotFoundException: io.quarkus.runtime.Quarkus

我正在嘗試運行 quarkus 應用程序的 runner 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 文件夾放在 runner jar 位置時,它會成功加載,這意味着它完全需要 lib 文件夾。

如何使我的代碼僅適用於 runner jar?

要生成包含運行應用程序所需的所有庫的胖 jar,請使用屬性quarkus.package.uber-jar=true (您可以將其添加到src/main/resources/application.properties或將其作為系統屬性傳遞運行構建時)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM