public interface Platform
A platform group (e.g., an architecture or OS) is an interface extending Platform
. A leaf
platform, e.g., a supported architecture-OS-combination, is a class that implements all the
groups that it belongs to. A leaf platform class must be non-abstract and must have a no-argument
constructor. It is good practice to make leaf platform classes final
(to prevent
accidental subclassing) and to avoid state (i.e., no fields).
The annotation Platforms
restricts a type, method, or field to certain platform groups or
leaf platforms.
This system makes the set of platform groups and leaf platforms extensible. Some standard platforms are defined as inner classes.
Modifier and Type | Interface and Description |
---|---|
static interface |
Platform.AARCH64
Supported architecture: ARMv8 64-bit.
|
static interface |
Platform.AMD64
Supported architecture: x86 64-bit.
|
static interface |
Platform.DARWIN
Supported operating system: Darwin (MacOS).
|
static class |
Platform.DARWIN_AARCH64
Supported leaf platform: Darwin (MacOS) on AArch 64-bit.
|
static class |
Platform.DARWIN_AMD64
Supported leaf platform: Darwin (MacOS) on x86 64-bit.
|
static class |
Platform.HOSTED_ONLY
Marker for elements (types, methods, or fields) that are only visible during native image
generation and cannot be used at run time, regardless of the actual platform.
|
static interface |
Platform.LINUX
Supported operating system: Linux.
|
static class |
Platform.LINUX_AARCH64
Supported leaf platform: Linux on AArch64 64-bit.
|
static class |
Platform.LINUX_AMD64
Supported leaf platform: Linux on x86 64-bit.
|
static interface |
Platform.WINDOWS
Supported operating system: Windows.
|
static class |
Platform.WINDOWS_AMD64
Supported leaf platform: Windows on x86 64-bit.
|
Modifier and Type | Field and Description |
---|---|
static String |
PLATFORM_PROPERTY_NAME
The system property name that specifies the fully qualified name of the
Platform
implementation class that should be used. |
Modifier and Type | Method and Description |
---|---|
static boolean |
includedIn(Class<? extends Platform> platformGroup)
Returns true if the current platform (the platform that the native image is built for) is
included in the provided platform group.
|
static final String PLATFORM_PROPERTY_NAME
Platform
implementation class that should be used. If the property is not specified, the platform
class is inferred from the standard architectures and operating systems specified in this
file, i.e., in most cases it is not necessary to use this property.static boolean includedIn(Class<? extends Platform> platformGroup)
The platformGroup must be a compile-time constant, so that the call to this method can be replaced with the constant boolean result.