Java 在JVM选项中,有没有一种方法可以将模块路径寻址到runnable jar包中的模块?
1-我创建了一个jar包,其中包含我的模块和javafx模块 在运行jar时,如何在JVM选项中寻址jar包中javafx模块的模块路径,而不是外部javafx库? 2-我在我的项目中也使用了gradle,有没有办法通过build.gradle文件创建一个包含javafx模块的jar,而不在项目结构中创建工件?Java 在JVM选项中,有没有一种方法可以将模块路径寻址到runnable jar包中的模块?,java,gradle,javafx,jar,runtime,Java,Gradle,Javafx,Jar,Runtime,1-我创建了一个jar包,其中包含我的模块和javafx模块 在运行jar时,如何在JVM选项中寻址jar包中javafx模块的模块路径,而不是外部javafx库? 2-我在我的项目中也使用了gradle,有没有办法通过build.gradle文件创建一个包含javafx模块的jar,而不在项目结构中创建工件? 上面的JDK 9和上面的gradle 5您是在尝试将自己的模块信息与添加到jar中的javafx类的模块信息合并,还是在尝试引用jar文件中的javafx swt.jar条目?我想将j
上面的JDK 9和上面的gradle 5您是在尝试将自己的模块信息与添加到jar中的javafx类的模块信息合并,还是在尝试引用jar文件中的
javafx swt.jar
条目?我想将jar中的javafx模块添加到JVM选项中您似乎已经提取了javafx类(除了javafxswt.jar
中的类)并将它们放置在应用程序的jar文件中。对于非模块化应用程序,这应该可以工作,可能需要一些修改。然而,据我所知,每个JAR文件只能有一个模块。正如您在图像中看到的,只剩下一个模块info.class
。这意味着您不能引用JAR文件中嵌入的JavaFX模块,因为JavaFX模块不再存在;所有的JavaFX代码现在都是您模块的一部分。那么,我如何在不引用外部JavaFX库的情况下创建一个可运行的jar呢?我想创建一个可执行的jar,只需单击一下即可执行。不要在JVM选项中按模块路径指定外部库。您可以使应用程序非模块化。只要主类不是应用程序
的子类,就仍然可以从类路径使用JavaFX模块。更详细地说。不幸的是,不支持可执行的模块化JAR文件。然而,我链接到的答案确实提供了与模块兼容的自包含Java应用程序的选项。应该很快就会出现jpackage
工具,它甚至允许您创建本机可执行文件。