当前位置: 首页 > 知识库问答 >
问题:

JDK11/JavaFX:如何在没有构建/依赖管理的情况下生成fat jar?

凤晨朗
2023-03-14
how to make a fat jar -maven -gradle -scala -eclipse -ant -docker -hadoop -netbeans -jerkar -phy -mozni -yogurt -pizza - throwing -python -bacon

共有1个答案

孟彦
2023-03-14

对于Maven和Gradle已经回答过几次了。构建工具使事情比在命令行上做得更容易,这不仅仅是因为依赖关系管理。

因为您特别询问了命令行,所以这里已经有了一套完整的说明:https://openjfx.io/openjfx-docs/#modular。

非模块化应用程序

non-modular from CLI一节从命令行介绍了JavaFX非模块化项目,并为您提供了创建旧的经典fat jar的一整套指令,其中所有依赖项(包括JavaFX依赖项)都捆绑在一起。

警告:这是一个令人气馁的、繁琐的、容易出错的手工过程,如果jlink不适用,应该通过使用Maven的shade插件或Gradle的jar任务来避免。

在您获得fat jar(它可以是跨平台的)之后,您可以分发它,您的用户将需要安装并运行Java:

java -jar myFat.jar 

模块化应用程序

hellofx/bin/java -m hellofx/hellofx.HelloFX
hellofx

但是,如果你仍然想用模块化的应用程序做一个胖罐子,你仍然可以应用来自非模块化的应用程序的完全相同的指令。在这种情况下,您可能必须删除module-info.java文件,因为它在这一点上没有意义。

您仍然有几个更多的选项来分发应用程序。

自定义Java+JavaFX映像

/path/to/custom/java -jar myFat.jar

jpackage工具还没有出现,但有一个早期访问:http://jdk.Java.net/jpackage/,它使用Java13-internal。现有文档解释了生成定义映像或安装程序所需的命令行选项。

请注意,您仍然可以将JavaFX11或12与此结合使用。

生成工具

最后,您仍然可以决定使用构建工具(Maven或Gradle),这将在许多方面真正帮助您。请参阅上面的任何一个链接问题。

 类似资料:
  • 我正在尝试安装一个没有依赖项的python模块。 我跑: 但是这个安装依赖项,任何想法怎么能做到这一点?

  • 我正在遵循Oracle的教程在JavaFX中创建TableView。在这个截图中,我复制并粘贴了代码,发现了几个错误,教程中没有提到这些错误。 TableView上的警告显示: TableView是原始类型。对泛型类型TableView的引用 表列上的警告说: 表列是一个原始类型。对泛型类型TableCol列的引用 addAll方法上的警告是: 类型安全:方法addAll(Object…)属于原始

  • 问题在于,当我通过工件spring-boot-maven-plugin用maven编译服务时,.war文件内部总是有依赖关系。因为我想知道是否有人知道如何配置maven来删除.war文件中的依赖项......穿着春靴。 war随后出现了里面的依赖关系,经过编辑:我已经添加了提供的,就像Michael Potter所说的和执行一样。很好用。我的pom.xml如下:

  • 我正在编写一个spring-mvc应用程序(并学习spring-mvc)。我没有向pom.xml添加servlet依赖项。当我运行或时,它会成功地完成。不是应该抛出类似“can not find javax.servlet.http.HttpServlet”这样的异常吗?它是如何编译的?

  • 我正在寻找一种方法来刷新我的渐变依赖关系,而不必重新生成项目。我正在使用智能和它的渐变包装器。我尝试过从 IntelliJ 的 gradle UI 运行任务“依赖关系”,我尝试过运行命令 和 ,两者都不起作用。让 gradle 下载新依赖项的唯一方法是使用来自 IntelliJ UI ,但我不喜欢这样做,因为 gradle 会自动运行一些我不想运行的任务,而我只想刷新依赖项。

  • 问题内容: 示例问题: 实体: 用户包含姓名和朋友列表(用户参考) 博客文章包含标题,内容,日期和作者(用户) 需求: 我想要一个显示标题的页面以及指向用户朋友的最近10篇博客的链接。我还希望能够通过较旧的条目继续进行分页。 SQL解决方案: 因此在sql land中,它将类似于: 我能想到的GAE解决方案是: 加载用户,循环浏览好友列表并加载其最新博客帖子。最后合并所有博客文章以查找最新的10个