- java.lang.Object
-
- jnr.ffi.Platform
-
public abstract class Platform extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classPlatform.CPUThe supported CPU architectures.static classPlatform.OSThe common names of supported operating systems.
-
Field Summary
Fields Modifier and Type Field Description protected PatternlibPattern
-
Constructor Summary
Constructors Constructor Description Platform(Platform.OS os, Platform.CPU cpu, int addressSize, int longSize, String libPattern)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description intaddressSize()Deprecated.UseRuntime.addressSize()instead.Platform.CPUgetCPU()Gets the current processor architecture the JVM is running on.StringgetName()Gets the name of thisPlatform.static PlatformgetNativePlatform()Gets the nativePlatformPlatform.OSgetOS()Gets the current Operating System.static PlatformgetPlatform()Deprecated.StringgetStandardCLibraryName()Returns the platform specific standard C library namebooleanisBigEndian()Returns true if the current platform is big endianbooleanisBSD()booleanisLittleEndian()Returns true if the current platform is little endianbooleanisUnix()List<String>libraryLocations(String libName, List<String> additionalPaths)Returns a list of absolute paths to the found locations of a library with the base namelibName, if the returned list is empty then the library could not be found and will fail to be loaded as a result.StringlocateLibrary(String libName, List<String> libraryPath)Searches through a list of directories for a native library.StringlocateLibrary(String libName, List<String> libraryPaths, Map<LibraryOption,Object> options)Searches through a list of directories for a native library.intlongSize()Deprecated.UseRuntime.longSize()instead.StringmapLibraryName(String libName)Maps from a generic library name (e.g.
-
-
-
Field Detail
-
libPattern
protected final Pattern libPattern
-
-
Constructor Detail
-
Platform
public Platform(Platform.OS os, Platform.CPU cpu, int addressSize, int longSize, String libPattern)
-
-
Method Detail
-
getNativePlatform
public static Platform getNativePlatform()
Gets the nativePlatform- Returns:
- The current platform.
-
getPlatform
@Deprecated public static Platform getPlatform()
Deprecated.
-
getOS
public final Platform.OS getOS()
Gets the current Operating System.- Returns:
- A
OSvalue representing the current Operating System.
-
getCPU
public final Platform.CPU getCPU()
Gets the current processor architecture the JVM is running on.- Returns:
- A
CPUvalue representing the current processor architecture.
-
isBSD
public final boolean isBSD()
-
isUnix
public final boolean isUnix()
-
longSize
public final int longSize()
Deprecated.UseRuntime.longSize()instead.Gets the size of a C 'long' on the native platform.- Returns:
- the size of a long in bits
-
addressSize
public final int addressSize()
Deprecated.UseRuntime.addressSize()instead.Gets the size of a C address/pointer on the native platform.- Returns:
- the size of a pointer in bits
-
isLittleEndian
public final boolean isLittleEndian()
Returns true if the current platform is little endian- Returns:
- true if little endian, false otherwise or if cannot determine
-
isBigEndian
public final boolean isBigEndian()
Returns true if the current platform is big endian- Returns:
- true if big endian, false otherwise or if cannot determine
-
getName
public String getName()
Gets the name of thisPlatform.- Returns:
- The name of this platform.
-
getStandardCLibraryName
public String getStandardCLibraryName()
Returns the platform specific standard C library name- Returns:
- The standard C library name
-
mapLibraryName
public String mapLibraryName(String libName)
Maps from a generic library name (e.g. "c") to the platform specific library name.- Parameters:
libName- The library name to map- Returns:
- The mapped library name.
-
locateLibrary
public String locateLibrary(String libName, List<String> libraryPath)
Searches through a list of directories for a native library.- Parameters:
libName- the base name (e.g. "c") of the library to locatelibraryPath- the list of directories to search- Returns:
- the path of the library
-
locateLibrary
public String locateLibrary(String libName, List<String> libraryPaths, Map<LibraryOption,Object> options)
Searches through a list of directories for a native library.- Parameters:
libName- the base name (e.g. "c") of the library to locatelibraryPaths- the list of directories to searchoptions- map ofLibraryOptions to customize search behavior such asLibraryOption.PreferCustomPaths- Returns:
- the path of the library
-
libraryLocations
public List<String> libraryLocations(String libName, List<String> additionalPaths)
Returns a list of absolute paths to the found locations of a library with the base namelibName, if the returned list is empty then the library could not be found and will fail to be loaded as a result. Even if a library is found, this does not guarantee that it will successfully be loaded, it only guarantees that the reason for the failure was not that it was not found.- Parameters:
libName- the base name (e.g. "c") of the library to locateadditionalPaths- additional paths to search, these take precedence over default paths, (as is the behavior inLibraryLoader) pass null to only search in the default paths- Returns:
- the list of absolute paths where the library was found
-
-