java - 为什么 Java 类型 `UNIXProcess` 在我的系统上不可见?

标签 java unix

我正在构建一个我打算仅在 Unix 操作系统上使用的 Java 应用程序。

在应用程序中,我使用 ProcessBuilder 创建了一些子进程,并希望以 native 方式与它们交互。因此,我不想使用 Process 提供的接口(interface),而是希望在启动子进程后将它们转换为 UNIXProcess

但是我在尝试使用 Type 时遇到此错误。

import java.lang.UNIXProcess;

public class Main
{
    public static void main(String args) throws Exception
    {
        ProcessBuilder bp = new ProcessBuilder("/bin/echo", "hello");
        Process process = bp.start();
        UNIXProcess unixProcess = (UNIXProcess) process;

    }
}

The type java.lang.UNIXProcess is not visible

我不应该使用 UNIX 进程吗?

我在 Eclipse for Java 1.7 中看到了这个错误,如果这很重要的话。

最佳答案

UNIXProcess 未声明为 public:

final class UNIXProcess extends Process

这意味着它仅在 java.lang 包中可见。 Java 禁止您在该包之外使用它。

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/UNIXProcess.java#36

关于java - 为什么 Java 类型 `UNIXProcess` 在我的系统上不可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25233072/

相关文章:

java - 自定义ListView + getView方法

gcc - Unix 程序使用共享库中的错误函数

java - JDialog 中的 JTable

c++ - 为什么你会选择 "a.out file"而不是 "a.out < file",反之亦然? C++

c - 如何从一个程序访问另一个程序的内存

ruby-on-rails - Nginx 无法使用 Unicorn 找到 unix 套接字文件

bash - 仅列出当前目录中早于 x 天的所有文件

java - 说到Android资源,什么是bag?

java - 如何使用spring data jpa Sort.Order.nullslast

java - 如何使用 Javadoc 显示方法的实现