Package org.jline.terminal.impl.jni
Class JniTerminalProvider
- java.lang.Object
-
- org.jline.terminal.impl.jni.JniTerminalProvider
-
- All Implemented Interfaces:
org.jline.terminal.spi.TerminalProvider
public class JniTerminalProvider extends java.lang.Object implements org.jline.terminal.spi.TerminalProvider
Terminal provider implementation that uses JNI (Java Native Interface) to access native terminal functionality.This provider requires the JLine native library to be loaded, which is handled by
JLineNativeLoader
. The native library provides access to low-level terminal operations that are not available through standard Java APIs.The native library is automatically loaded when this provider is used. If the library cannot be loaded, the provider will not be available and JLine will fall back to other available providers.
The native library loading can be configured using system properties as documented in
JLineNativeLoader
.- See Also:
JLineNativeLoader
,TerminalBuilder
-
-
Constructor Summary
Constructors Constructor Description JniTerminalProvider()
Creates a new JNI terminal provider instance and ensures the native library is loaded.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.jline.terminal.spi.Pty
current(org.jline.terminal.spi.SystemStream systemStream)
boolean
isPosixSystemStream(org.jline.terminal.spi.SystemStream stream)
boolean
isSystemStream(org.jline.terminal.spi.SystemStream stream)
boolean
isWindowsSystemStream(org.jline.terminal.spi.SystemStream stream)
java.lang.String
name()
org.jline.terminal.Terminal
newTerminal(java.lang.String name, java.lang.String type, java.io.InputStream in, java.io.OutputStream out, java.nio.charset.Charset encoding, java.nio.charset.Charset stdinEncoding, java.nio.charset.Charset stdoutEncoding, java.nio.charset.Charset stderrEncoding, org.jline.terminal.Terminal.SignalHandler signalHandler, boolean paused, org.jline.terminal.Attributes attributes, org.jline.terminal.Size size)
org.jline.terminal.spi.Pty
open(org.jline.terminal.Attributes attributes, org.jline.terminal.Size size)
org.jline.terminal.Terminal
posixSysTerminal(java.lang.String name, java.lang.String type, boolean ansiPassThrough, java.nio.charset.Charset encoding, boolean nativeSignals, org.jline.terminal.Terminal.SignalHandler signalHandler, boolean paused, org.jline.terminal.spi.SystemStream systemStream)
org.jline.terminal.Terminal
posixSysTerminal(java.lang.String name, java.lang.String type, boolean ansiPassThrough, java.nio.charset.Charset encoding, java.nio.charset.Charset stdinEncoding, java.nio.charset.Charset stdoutEncoding, java.nio.charset.Charset stderrEncoding, boolean nativeSignals, org.jline.terminal.Terminal.SignalHandler signalHandler, boolean paused, org.jline.terminal.spi.SystemStream systemStream)
java.lang.String
systemStreamName(org.jline.terminal.spi.SystemStream stream)
int
systemStreamWidth(org.jline.terminal.spi.SystemStream stream)
org.jline.terminal.Terminal
sysTerminal(java.lang.String name, java.lang.String type, boolean ansiPassThrough, java.nio.charset.Charset encoding, java.nio.charset.Charset stdinEncoding, java.nio.charset.Charset stdoutEncoding, java.nio.charset.Charset stderrEncoding, boolean nativeSignals, org.jline.terminal.Terminal.SignalHandler signalHandler, boolean paused, org.jline.terminal.spi.SystemStream systemStream)
java.lang.String
toString()
org.jline.terminal.Terminal
winSysTerminal(java.lang.String name, java.lang.String type, boolean ansiPassThrough, java.nio.charset.Charset encoding, boolean nativeSignals, org.jline.terminal.Terminal.SignalHandler signalHandler, boolean paused, org.jline.terminal.spi.SystemStream systemStream)
org.jline.terminal.Terminal
winSysTerminal(java.lang.String name, java.lang.String type, boolean ansiPassThrough, java.nio.charset.Charset encoding, java.nio.charset.Charset stdinEncoding, java.nio.charset.Charset stdoutEncoding, java.nio.charset.Charset stderrEncoding, boolean nativeSignals, org.jline.terminal.Terminal.SignalHandler signalHandler, boolean paused, org.jline.terminal.spi.SystemStream systemStream)
-
-
-
Constructor Detail
-
JniTerminalProvider
public JniTerminalProvider()
Creates a new JNI terminal provider instance and ensures the native library is loaded.The constructor initializes the JLine native library using
JLineNativeLoader.initialize()
. If the native library cannot be loaded, methods in this provider may throw exceptions when used.
-
-
Method Detail
-
name
public java.lang.String name()
- Specified by:
name
in interfaceorg.jline.terminal.spi.TerminalProvider
-
current
public org.jline.terminal.spi.Pty current(org.jline.terminal.spi.SystemStream systemStream) throws java.io.IOException
- Throws:
java.io.IOException
-
open
public org.jline.terminal.spi.Pty open(org.jline.terminal.Attributes attributes, org.jline.terminal.Size size) throws java.io.IOException
- Throws:
java.io.IOException
-
sysTerminal
public org.jline.terminal.Terminal sysTerminal(java.lang.String name, java.lang.String type, boolean ansiPassThrough, java.nio.charset.Charset encoding, java.nio.charset.Charset stdinEncoding, java.nio.charset.Charset stdoutEncoding, java.nio.charset.Charset stderrEncoding, boolean nativeSignals, org.jline.terminal.Terminal.SignalHandler signalHandler, boolean paused, org.jline.terminal.spi.SystemStream systemStream) throws java.io.IOException
- Specified by:
sysTerminal
in interfaceorg.jline.terminal.spi.TerminalProvider
- Throws:
java.io.IOException
-
winSysTerminal
public org.jline.terminal.Terminal winSysTerminal(java.lang.String name, java.lang.String type, boolean ansiPassThrough, java.nio.charset.Charset encoding, boolean nativeSignals, org.jline.terminal.Terminal.SignalHandler signalHandler, boolean paused, org.jline.terminal.spi.SystemStream systemStream) throws java.io.IOException
- Throws:
java.io.IOException
-
winSysTerminal
public org.jline.terminal.Terminal winSysTerminal(java.lang.String name, java.lang.String type, boolean ansiPassThrough, java.nio.charset.Charset encoding, java.nio.charset.Charset stdinEncoding, java.nio.charset.Charset stdoutEncoding, java.nio.charset.Charset stderrEncoding, boolean nativeSignals, org.jline.terminal.Terminal.SignalHandler signalHandler, boolean paused, org.jline.terminal.spi.SystemStream systemStream) throws java.io.IOException
- Throws:
java.io.IOException
-
posixSysTerminal
public org.jline.terminal.Terminal posixSysTerminal(java.lang.String name, java.lang.String type, boolean ansiPassThrough, java.nio.charset.Charset encoding, boolean nativeSignals, org.jline.terminal.Terminal.SignalHandler signalHandler, boolean paused, org.jline.terminal.spi.SystemStream systemStream) throws java.io.IOException
- Throws:
java.io.IOException
-
posixSysTerminal
public org.jline.terminal.Terminal posixSysTerminal(java.lang.String name, java.lang.String type, boolean ansiPassThrough, java.nio.charset.Charset encoding, java.nio.charset.Charset stdinEncoding, java.nio.charset.Charset stdoutEncoding, java.nio.charset.Charset stderrEncoding, boolean nativeSignals, org.jline.terminal.Terminal.SignalHandler signalHandler, boolean paused, org.jline.terminal.spi.SystemStream systemStream) throws java.io.IOException
- Throws:
java.io.IOException
-
newTerminal
public org.jline.terminal.Terminal newTerminal(java.lang.String name, java.lang.String type, java.io.InputStream in, java.io.OutputStream out, java.nio.charset.Charset encoding, java.nio.charset.Charset stdinEncoding, java.nio.charset.Charset stdoutEncoding, java.nio.charset.Charset stderrEncoding, org.jline.terminal.Terminal.SignalHandler signalHandler, boolean paused, org.jline.terminal.Attributes attributes, org.jline.terminal.Size size) throws java.io.IOException
- Specified by:
newTerminal
in interfaceorg.jline.terminal.spi.TerminalProvider
- Throws:
java.io.IOException
-
isSystemStream
public boolean isSystemStream(org.jline.terminal.spi.SystemStream stream)
- Specified by:
isSystemStream
in interfaceorg.jline.terminal.spi.TerminalProvider
-
isWindowsSystemStream
public boolean isWindowsSystemStream(org.jline.terminal.spi.SystemStream stream)
-
isPosixSystemStream
public boolean isPosixSystemStream(org.jline.terminal.spi.SystemStream stream)
-
systemStreamName
public java.lang.String systemStreamName(org.jline.terminal.spi.SystemStream stream)
- Specified by:
systemStreamName
in interfaceorg.jline.terminal.spi.TerminalProvider
-
systemStreamWidth
public int systemStreamWidth(org.jline.terminal.spi.SystemStream stream)
- Specified by:
systemStreamWidth
in interfaceorg.jline.terminal.spi.TerminalProvider
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-