如果您想使用Gradle而不是Shadow插件来制作胖子,通常您会这样做:
jar { manifest { attributes 'Main-Class': 'com.CAM.Starter' } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }}
然而,有一个重要的事实:
compile已被弃用,JavaFX的插件使用
implementation的默认。
因此,它
configuration.compile可能为空,或者至少不包含JavaFX类。
解决的办法是检查
runtimeClasspath配置,因为这里将包含所有类,我们可以制作胖子罐子:
jar { manifest { attributes 'Main-Class': 'com.CAM.Starter' } from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }}
这在OpenJFX文档https://openjfx.io/openjfx-
docs/#modular(非模块化项目)的小节gradle中进行了说明。
一旦有了胖子罐,就可以使用以下命令运行它:
java -jar yourFatJar.jar
需要注意的是它不会工作,双击,在详细解释在这里,所以它可以方便地创建一个小批量的来代替。
更好的解决方案是执行一个模块化项目,并用于
jlink创建运行时映像(它还包含启动脚本)。您可以将此映像分发给甚至没有安装JDK的其他用户。使用gradle,您可以仅包括
'org.beryx.jlink'该示例中的插件。
而且你还可以使用早期版本的
jpackage创建分发安装程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)