JavaFx程序使用Gloun打包成Android平台App教程

这篇具有很好参考价值的文章主要介绍了JavaFx程序使用Gloun打包成Android平台App教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. 提要

!!!
适合有Maven基础,对JavaFx或JavaFX移动端感兴趣的朋友
提示必须在Linux环境下进行,可以使用虚拟机

JavaFx程序使用Gloun打包成Android平台App教程

推荐使用CentOS系统进行,虚拟机硬盘大小推荐最少给30G
不要像我一样,搞一半又去给文件系统根目录扩大容量
如果容量不够可以看篇博客:
https://blog.csdn.net/m0_58042817/article/details/128407487
!!!

1.创建Gluon项目

1.1 IDEA中安装Gluon插件,我已经安装过

JavaFx程序使用Gloun打包成Android平台App教程

1.2 创建项目,如果Maven配置没有问题,这里创建项目应该很快

JavaFx程序使用Gloun打包成Android平台App教程

1.3 运行项目

为了更好图像步骤,最好使用系统终端或 IDE 中的嵌入式终端,在项目根目录下输入:

mvn javafx:run

JavaFx程序使用Gloun打包成Android平台App教程

运行如果没有问题开始继续进行下面的步骤

2.准备打包的前提条件

2.1 前提条件一

进入官方文档页面
https://docs.gluonhq.com/#prerequisites_linux

命令还是 tar -zxvf [压缩包名字加后缀]

tar -zxvf xxxxx

JavaFx程序使用Gloun打包成Android平台App教程

下载选择

JavaFx程序使用Gloun打包成Android平台App教程

解压好后 命令也输入后大概这个样子

JavaFx程序使用Gloun打包成Android平台App教程

2.2 前提条件二

使用命令安装需要的包,还有安装开发者工具集

图条件二:

JavaFx程序使用Gloun打包成Android平台App教程

因为可能yum过久或者有问题导致找不到包或多或少的问题,这里要配置yum源为国内的源,我用的阿里云的源,接着升级yum

具体步骤参见这位两位大佬的步骤,第一个就够用了

https://blog.csdn.net/zhinian1204/article/details/123975403

https://cloud.tencent.com/developer/article/2160459

这个博客文章源比较多一点:

https://blog.csdn.net/Neutionwei/article/details/108111658

这里给一波语法提示

JavaFx程序使用Gloun打包成Android平台App教程

更改源后,升级完毕后,接着开始输入上面图中yum所需的安装包命令,下面也给出了

记得一路 y

sudo yum install pkgconfig gtk3-devel libXtst-devel

这一步完毕后接着点击上面(图条件二)图片文档中的链接去下载开发者工具集

这里也给出了地址:
https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/

进入链接页面,同样是使用yum运行命令,依次输入运行以下命令

JavaFx程序使用Gloun打包成Android平台App教程

3. 前提条件三

3.1 搭建开发环境

java 和 maven 是必须进行的

Java开发环境

https://blog.csdn.net/wsjzzcbq/article/details/82818826

Maven环境

https://blog.csdn.net/wsjzzcbq/article/details/123902173

3.2 准备打包环境,将windows中写好的程序准备好的,放到虚拟机linux环境中

这里添加一个上面下载的GraalVM目录的环境变量

输入命令

vim /etc/profile

上面的命令会打开一个文件,在最下方插入下面这句话,注意路径根据自己的

export GRAALVM_HOME=/usr/local/graalvm-svm-java17-linux-gluon-22.1.0.1-Final

插入好 -> esc -> :wq 退出编辑

输入命令 重新加载配置文件

source /etc/profile

这里只提供pom文件 pom文件中使用了上面配置的GraalVM环境变量

不要全部赋值pom文件,选择你要使用的去复制,不然你的项目可能会坏掉

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.gluonapplication</groupId>
    <artifactId>gluon-singleviewproject</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>Gluon-SingleViewProject</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.release>11</maven.compiler.release>
        <javafx.version>19</javafx.version>
        <attach.version>4.0.16</attach.version>
        <gluonfx.plugin.version>1.0.16</gluonfx.plugin.version>
        <javafx.plugin.version>0.0.8</javafx.plugin.version>
        <mainClassName>com.gluonapplication.GluonApplication</mainClassName>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>${javafx.version}</version>
        </dependency>
        <dependency>
            <groupId>com.gluonhq</groupId>
            <artifactId>charm-glisten</artifactId>
            <version>6.2.2</version>
        </dependency>
        <dependency>
            <groupId>com.gluonhq.attach</groupId>
            <artifactId>display</artifactId>
            <version>${attach.version}</version>
        </dependency>
        <dependency>
            <groupId>com.gluonhq.attach</groupId>
            <artifactId>lifecycle</artifactId>
            <version>${attach.version}</version>
        </dependency>
        <dependency>
            <groupId>com.gluonhq.attach</groupId>
            <artifactId>statusbar</artifactId>
            <version>${attach.version}</version>
        </dependency>
        <dependency>
            <groupId>com.gluonhq.attach</groupId>
            <artifactId>storage</artifactId>
            <version>${attach.version}</version>
        </dependency>
        <dependency>
            <groupId>com.gluonhq.attach</groupId>
            <artifactId>util</artifactId>
            <version>${attach.version}</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>Gluon</id>
            <url>https://nexus.gluonhq.com/nexus/content/repositories/releases</url>
        </repository>
    </repositories>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
            </plugin>

            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>${javafx.plugin.version}</version>
                <configuration>
                    <mainClass>${mainClassName}</mainClass>
                </configuration>
            </plugin>

            <plugin>
                <groupId>com.gluonhq</groupId>
                <artifactId>gluonfx-maven-plugin</artifactId>
                <version>${gluonfx.plugin.version}</version>
                <configuration>
                    <graalvmHome>Gluon-SingleViewProject</graalvmHome>
                    <target>${gluonfx.target}</target>
					<graalvmHome>${GRAALVM_HOME}</graalvmHome>
                    <attachList>
                        <list>display</list>
                        <list>lifecycle</list>
                        <list>statusbar</list>
                        <list>storage</list>
                    </attachList>
                    <mainClass>${mainClassName}</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
 <pluginRepositories>
        <pluginRepository>
            <id>gluon-releases</id>
            <url>https://nexus.gluonhq.com/nexus/content/repositories/releases/</url>
        </pluginRepository>
        <pluginRepository>
            <id>snapshots</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        </pluginRepository>
    </pluginRepositories>
    <profiles>
        <profile>
            <id>android</id>
            <properties>
                <gluonfx.target>android</gluonfx.target>
            </properties>
        </profile>
    </profiles>
</project>

3.3 在打包项目根目录下打开命令窗口,执行命令

命令运行过程中虚拟机可能会很卡不要管,当一个命令运行好后再接着运行下一个

时间不短也不长,5分钟左右

将运行编译阶段并将编译后的对象链接到 android 可执行文件中

mvn -Pandroid gluonfx:build

继续,生成可以安装在任何Android设备上的Android应用程序包(APK)

mvn -Pandroid gluonfx:package

到了这一步项目apk已经打包好了,会生成在target/gluonfx/aarch64-android/gvm文件下

此时如果不想继续下面的操作可以直接将apk发送到手机端安装看效果

继续,在设备上启动应用程序,这里要先用数据线连接手机和电脑

会弹出窗口,让你选择连接的设备,按着我图中的选择

JavaFx程序使用Gloun打包成Android平台App教程

3.3.1 注意很重要

将应用程序安装到已连接的 Android 设备,请运行

mvn -Pandroid gluonfx:install

我自己进行到这里的时候没看到这行命令,导致耽误半天时间

JavaFx程序使用Gloun打包成Android平台App教程

文档中这行命令的位置

JavaFx程序使用Gloun打包成Android平台App教程

在设备上启动应用程序。GluonFX 插件也将开始 adb logcat 从设备向控制台打印调试信息。
继续运行命令:
mvn -Pandroid gluonfx:nativerun

这里要配合手机中的提示,可能会让你选择是否同意Usb安装应用什么的,统一都同意

最后的效果图: 到这里就结束啦!!!文章来源地址https://www.toymoban.com/news/detail-450839.html

到了这里,关于JavaFx程序使用Gloun打包成Android平台App教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp打包成Android时,使用uni.chooseLocation在App端显示的地址列表是空白的解决办法

    前言: 最近在做项目的时候出现了一个很无解的问题,问了很多人,找了很多的资料,都没有解决.最后在一个突然的机会,我发现了一个小线索.(继续往下看!) 问题描述: uniapp在打包成app后使用uni.chooseLocation后,在app端,选择地址的时候,你会发现他一直都是在转圈的状态,但是真机调试

    2024年02月02日
    浏览(56)
  • Android Studio 中使用 Gradle 配置多渠道打包 配置不同的渠道名称 配置不同的App名称 配置不同的Logo

    三种操作都是可以混合一起用的,本来也不是很难的事情,为了方便分别理解,这里我就分开处理了。 如果需要将打包出来的apk的名称自动命名成指定格式,也可以进行配置,我这里没这个需求,所以这里就不讨论了。 另外,我的配置里面,还通过buildTypes{debug{} release{}}的方

    2024年02月09日
    浏览(42)
  • web前端项目使用electron打包成跨平台桌面端程序(Windows)

    Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。 在使用Electron进行开发之前,您需要安装 Node.js。 我们建

    2024年02月16日
    浏览(83)
  • linux平台下qt程序的编译以及使用linuxdeployqt打包可执行程序和在高版本22.04ubuntu下使用linuxdeployqt打包文件的问题

    写于2023.10.20 最近遇到了一个问题,需要把在windows下面写好的qt程序打包成linux可以运行的文件进行发布,而且最终目标和windows一样,要在一个近乎于纯净环境的机器上进行运行,故而有了这个博客,记录了我们小组攻克的一系列问题 由于是已经攻克过后才有的这一篇博客,

    2024年02月04日
    浏览(47)
  • Shopro商城 高级版 Fastadmin和Uniapp进行开发的多平台商城(微信公众号、微信小程序、H5网页、Android-App、IOS-App)

    Shopro商城无加密的开源源码( 可用于自营+外包项目(多主体) 、 可用于外包定制开发项目 ) shopro 商城,一款基于 uni-app 的前端模板商城。目前适配了(小程序+app+h5+公众号)。 主要功能:登录、注册、签到、富文本、分类、购物车、筛选、地址、商品评论、积分商城、拼团、

    2023年04月09日
    浏览(68)
  • JAVAFX中ChoiceBox控件使用教程(用到scenebuilder)

    ChoiceBox控件负责选择合适的选项,单独使用JAVAFX很容易实现。但如果使用到scenebuiler,ChoiceBox控件操作则较为麻烦,为了学会这个控件的基本使用,我搜寻了很多资料,希望能帮到大家。控件效果展示如下。 首先放置控件至合适位置后,将生成的Controller类的代码复制至相应的

    2024年02月11日
    浏览(34)
  • 【uni-app】uni项目打包微信小程序中使用 ECharts (mpvue-echarts)

    在小程序里画图表,uniapp 不想引入 u-charts怎么办,个人还是喜欢用echarts 先看成品图 说明: 示例下载-- 完整dom 如果你想要在单页面渲染多个图标可以看看:这里(相关文章传送门) 原生小程序使用的是 echarts-for-weixin ,具体地址如下: https://github.com/ecomfe/echarts-for-weixin 想在

    2024年02月07日
    浏览(59)
  • uniapp打包成android版本的app

     用到的工具:HBuilder X、Android Studio、jdk环境 本文参考:uni-app打包成Android Apk 全程详解_uniapp npm run build_CicadaMay的博客-CSDN博客 uni-app离线打包APK教程 - 哔哩哔哩 1.1、将自己的正常项目拖进HBuilder X中(我用的是vue编写的小程序项目) 1.2、操作方式见下图 注意:只要步骤2能操

    2024年02月04日
    浏览(44)
  • uni-app之android离线打包

    一 AndroidStudio创建项目 1.1,上一节演示了uni-app云打包,下面演示怎样androidStudio离线打包。在AndroidStudio里面新建空项目 1.2,下载uni-app离线SDK,离线SDK主要用于App本地离线打包及扩展原生能力,SDK下载链接https://nativesupport.dcloud.net.cn/AppDocs/download/android.html# 1.3,SDK目录说明   

    2024年02月10日
    浏览(53)
  • uni-app之android项目云打包

    1,项目根目录,找到mainfest.json,如果appid是空的,需要生成一个appid  2,点击重新获取appid,这个时候需要登录,那就输入账号密码登录下 3,登陆后可以看到获取appid成功 4,选择栏目运行选项,再选择云打包选项,这时候弹出一个云打包配置页面 5,需要配置密钥,可以通

    2024年02月10日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包