3
import org.jruby.ext.posix.JavaPOSIX;
4
import org.jruby.ext.posix.POSIX;
5
import org.jruby.ext.posix.POSIXFactory;
6
import org.jruby.ext.posix.POSIXHandler;
7
import org.jruby.ext.posix.POSIX.ERRORS;
10
import java.io.InputStream;
11
import java.io.PrintStream;
13
import java.util.logging.Logger;
18
* @author Kohsuke Kawaguchi
20
public class PosixAPI {
21
public static POSIX get() {
26
* @deprecated as of 1.448
27
* Use {@link #supportsNative()}.
29
public boolean isNative() {
30
return supportsNative();
34
* Determine if the jna-posix library could not provide native support, and
35
* used a fallback java implementation which does not support many operations.
37
public static boolean supportsNative() {
38
return !(posix instanceof JavaPOSIX);
41
private static final POSIX posix = POSIXFactory.getPOSIX(new POSIXHandler() {
42
public void error(ERRORS errors, String s) {
43
throw new PosixException(s,errors);
46
public void unimplementedError(String s) {
47
throw new UnsupportedOperationException(s);
50
public void warn(WARNING_ID warning_id, String s, Object... objects) {
54
public boolean isVerbose() {
58
public File getCurrentWorkingDirectory() {
59
return new File(".").getAbsoluteFile();
62
public String[] getEnv() {
63
Map<String,String> envs = System.getenv();
64
String[] envp = new String[envs.size()];
67
for (Map.Entry<String,String> e : envs.entrySet()) {
68
envp[i++] = e.getKey()+'+'+e.getValue();
73
public InputStream getInputStream() {
77
public PrintStream getOutputStream() {
86
public PrintStream getErrorStream() {
91
private static final Logger LOGGER = Logger.getLogger(PosixAPI.class.getName());