使用jlink为外部JAR生成module-info

3

我有一个简单的hello world Java应用程序,我手动下载了org.json并将其添加到我的类路径中,以便下面的应用程序运行。我该如何制作一个包含该jar文件的自定义JRE来运行此应用程序?

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Go {

    public static void main(String[] args) {

        SpringApplication.run(MessagingStompWebsocketApplication.class, args);
        System.out.println("running");


    }

}

不确定如何解决jdeps返回未找到的问题

jdeps --add-modules java.base,java.logging --generate-module-info work in/spring-jcl-5.2.3.RELEASE.jar 
Missing dependence: work/spring.jcl/module-info.java not generated
Error: missing dependencies
spring.jcl
   org.apache.commons.logging.LogAdapter$Log4jLog     -> org.apache.logging.log4j.Level                     not found
   org.apache.commons.logging.LogAdapter$Log4jLog     -> org.apache.logging.log4j.LogManager                not found
   org.apache.commons.logging.LogAdapter$Log4jLog     -> org.apache.logging.log4j.Marker                    not found
   org.apache.commons.logging.LogAdapter$Log4jLog     -> org.apache.logging.log4j.spi.ExtendedLogger        not found
   org.apache.commons.logging.LogAdapter$Log4jLog     -> org.apache.logging.log4j.spi.LoggerContext         not found
   org.apache.commons.logging.LogAdapter$Slf4jAdapter -> org.slf4j.Logger                                   not found
   org.apache.commons.logging.LogAdapter$Slf4jAdapter -> org.slf4j.LoggerFactory                            not found
   org.apache.commons.logging.LogAdapter$Slf4jAdapter -> org.slf4j.spi.LocationAwareLogger                  not found
   org.apache.commons.logging.LogAdapter$Slf4jLocationAwareLog -> org.slf4j.Logger                                   not found
   org.apache.commons.logging.LogAdapter$Slf4jLocationAwareLog -> org.slf4j.Marker                                   not found
   org.apache.commons.logging.LogAdapter$Slf4jLocationAwareLog -> org.slf4j.spi.LocationAwareLogger                  not found
   org.apache.commons.logging.LogAdapter$Slf4jLog     -> org.slf4j.Logger                                   not found

它们无法为Spring工作。

这些都没有回答我的问题,因为它们都没有展示如何制作自定义的JRE。

使用 jdeps 在 Java 9 中为自动模块创建 module-info

在使用 maven-jlink-plugin 时是否有一种方法来添加 Maven 依赖项?

这将生成一个 module-info.javamodule-info.class,并一直参考这个链接 https://www.baeldung.com/jlink ,试图弄清如何获得自定义 JRE,但我卡在这里了。

谢谢


好的,如果你的最终目标是构建一个自定义的JRE,那么由于使用了自动模块,这个问题仍然是一个重复的问题。如果只是关于无法生成module-info文件,那么它仍然是有效的。 - Naman
1
@Naman 是的,我正在尝试生成module-info.java文件,以便最终可以制作自定义JRE,但我的主要问题是首先获取module-info.java/module-info.class文件。 - spen123
1个回答

0
我通过我的IDE生成了module-info.java文件。我使用的是STS 4.6.2版本。我只需右键单击我的项目->配置->创建module-info.jar即可。然后,如果您正在使用Maven,只需执行clean install命令,module-info.class文件就会被生成。希望这可以帮到您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接