我试图通过把平台/操作系统特定的代码在各自的文件夹(自动创建的项目新创建的项目胶子的设置)设置我的胶子工程。 但是不管我做什么任务与摇篮它最终会采取什么是Main
文件夹。
比方说,我想有一个com.gluonhq.charm.glisten.mvc.View
与javafx.scene.control.Button
在它-有它通过声明标记不同于哪个文件夹从(主,机器人,桌面或来iOS版)。 怎么会是这样可能吗?
我试图通过把平台/操作系统特定的代码在各自的文件夹(自动创建的项目新创建的项目胶子的设置)设置我的胶子工程。 但是不管我做什么任务与摇篮它最终会采取什么是Main
文件夹。
比方说,我想有一个com.gluonhq.charm.glisten.mvc.View
与javafx.scene.control.Button
在它-有它通过声明标记不同于哪个文件夹从(主,机器人,桌面或来iOS版)。 怎么会是这样可能吗?
作为一个经验法则,你不应该要求你的项目的具体平台的代码。
如果你想要的是基于平台的自定义样式,你可以使用Platform.getCurrent().name()
然后再与基于它。
例如, MyDevoxx
应用基础平台和设备类型的负载不同的CSS文件。
一个好方法,了解平台特定的文件夹的工作方式是由具有看看魅力下库 ,并为不同的服务的实现。
正如你会发现这些文件夹包含Java和特定于平台的代码。
关于如何创建一个新的服务样本,可以发现在这里 。 例如, AndroidLogService
实现使用的android.util.Log
,而IOSLogService
利用原生的Objective-C(见Log.m
)。 这本机代码必须被编译为一个本地库(见installNativeLib
在构建文件的任务)。
在任何情况下,服务是从所谓的main
包:
Services.get(LogService.class).ifPresent(service -> service.log(message));
当您将应用程序部署到特定的平台,只为平台实现调用。
所以,如果你需要一个新的服务,您可以创建那些魅力羽绒服的设计如下。