use*_*odh 3 java web-services http 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[]{});
Run Code Online (Sandbox Code Playgroud)
另一个观察结果是,当我将 /lib 文件夹放在 runner jar 位置时,它会成功加载,这意味着它完全需要 lib 文件夹。
如何使我的代码仅适用于 runner jar?
要生成一个包含运行应用程序所需的所有库的胖 jar,请使用该属性quarkus.package.uber-jar=true(您可以src/main/resources/application.properties在运行构建时将其添加到或作为系统属性传递)。
| 归档时间: |
|
| 查看次数: |
1303 次 |
| 最近记录: |