0. 提要
!!!
适合有Maven基础,对JavaFx或JavaFX移动端感兴趣的朋友
提示必须在Linux环境下进行,可以使用虚拟机
推荐使用CentOS系统进行,虚拟机硬盘大小推荐最少给30G
不要像我一样,搞一半又去给文件系统根目录扩大容量
如果容量不够可以看篇博客:
https://blog.csdn.net/m0_58042817/article/details/128407487
!!!
1.创建Gluon项目
1.1 IDEA中安装Gluon插件,我已经安装过
1.2 创建项目,如果Maven配置没有问题,这里创建项目应该很快
1.3 运行项目
为了更好图像步骤,最好使用系统终端或 IDE 中的嵌入式终端,在项目根目录下输入:
mvn javafx:run
运行如果没有问题开始继续进行下面的步骤
2.准备打包的前提条件
2.1 前提条件一
进入官方文档页面
https://docs.gluonhq.com/#prerequisites_linux
命令还是 tar -zxvf [压缩包名字加后缀]
tar -zxvf xxxxx
下载选择
解压好后 命令也输入后大概这个样子
2.2 前提条件二
使用命令安装需要的包,还有安装开发者工具集
图条件二:
因为可能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
这里给一波语法提示
更改源后,升级完毕后,接着开始输入上面图中yum所需的安装包命令,下面也给出了
记得一路 y
sudo yum install pkgconfig gtk3-devel libXtst-devel
这一步完毕后接着点击上面(图条件二)图片文档中的链接去下载开发者工具集
这里也给出了地址:
https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/
进入链接页面,同样是使用yum运行命令,依次输入运行以下命令
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发送到手机端安装看效果
继续,在设备上启动应用程序,这里要先用数据线连接手机和电脑
会弹出窗口,让你选择连接的设备,按着我图中的选择
3.3.1 注意很重要
将应用程序安装到已连接的 Android 设备,请运行
mvn -Pandroid gluonfx:install
我自己进行到这里的时候没看到这行命令,导致耽误半天时间
文档中这行命令的位置
在设备上启动应用程序。GluonFX 插件也将开始 adb logcat 从设备向控制台打印调试信息。
继续运行命令:mvn -Pandroid gluonfx:nativerun
这里要配合手机中的提示,可能会让你选择是否同意Usb安装应用什么的,统一都同意文章来源:https://www.toymoban.com/news/detail-450839.html
最后的效果图: 到这里就结束啦!!!文章来源地址https://www.toymoban.com/news/detail-450839.html
到了这里,关于JavaFx程序使用Gloun打包成Android平台App教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!