您已经可以尝试 JavaFXPorts 插件。它正在持续开发中,但最近的版本已经足够成熟,可以毫无问题地使用它。
看看这里开始的基本要求。您将需要 JDK8u40+、Gradle 2.2+、Android SDK 和 Android Build 工具。
一切准备就绪后,您就可以试用样品了。
另外我建议你看看Gluon-plugin for NetBeans。基本上,它将为您创建一个新的空 JavaFX 项目,您将能够构建它并将其部署在您的桌面、Android 和 iOS 平台上。
看一下build.gradle
文件:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.0.0-b4'
}
}
apply plugin: 'org.javafxports.jfxmobile'
repositories {
jcenter()
}
mainClassName = 'org.test.javafxports.TestJavaFX'
jfxmobile {
ios {
forceLinkClasses = [ 'org.test.javafxports.**.*' ]
}
}
首先,您只需要更新插件版本。在此处查看最后一个:1.0.0-b8。
在您的桌面上构建并运行,或运行 androidInstall 等任务来生成 apk 并将其部署到您的 Android 手机上。
一旦您对其进行了测试,并且一切正常,您就可以开始添加项目的代码了。
回到您的问题,是的,您可以将任何第三方 jar 添加到项目中。
基本上你只需要添加对 gradle 文件的依赖。您可以使用compile
或runtime
与本地文件或来自外部存储库:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.0.0-b8'
}
}
apply plugin: 'org.javafxports.jfxmobile'
repositories {
jcenter()
}
dependencies {
compile files('lib/<your local jar>.jar')
compile 'org.glassfish:javax.json:1.0.4'
androidCompile 'org.glassfish:javax.json:1.0.4'
}
mainClassName = 'org.test.javafxports.TestJavaFX'
jfxmobile {
ios {
forceLinkClasses = [ 'org.test.javafxports.**.*' ]
}
}
请注意,您可以添加仅添加到一个单一平台的依赖项,例如androidCompile
或androidRuntime
.
由于该 apk 将在 Dalvik VM 上运行,因此只允许使用 Java 7 功能。不过,您可以使用 lambda,因为该插件在您的代码内部使用了 Retrolambda 项目。请注意,它不适用于添加的罐子。
作为在您的项目中使用 jar 的示例,您可以使用 Gluon-Charm-Down 开源库,该库已经提供了对您设备上某些本机服务的访问,例如本地存储或 GPS。
dependencies {
compile 'com.gluonhq:charm-down-common:0.0.1'
androidRuntime 'com.gluonhq:charm-down-android:0.0.1'
desktopRuntime 'com.gluonhq:charm-down-desktop:0.0.1'
}
事实上,通过 jfxmobile 插件和这个库,2048FX游戏已经成功移植到 Android(Google Play)和 iOS(Apple Store)。