我正在尝试运行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一起工作?
发布于 2020-09-16 16:57:37
要生成包含运行应用程序所需的所有库的fat jar,请使用属性quarkus.package.uber-jar=true
(您可以将其添加到src/main/resources/application.properties
中,或者在运行构建时将其作为系统属性传递)。
https://stackoverflow.com/questions/63915143
复制相似问题