【问题标题】:Java HttpServer Error: Access restriction: The type 'HttpServer' is not APIJava HttpServer 错误:访问限制:“HttpServer”类型不是 API
【发布时间】:2017-04-27 05:30:01
【问题描述】:

我试图用 java HttpServer 类做点什么。

这是文档中的最小示例:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import com.sun.net.httpserver.HttpServer;

class MyHandler implements HttpHandler 
{
    public void handle(HttpExchange t) throws IOException 
    {
        InputStream is = t.getRequestBody();
        read(is); // .. read the request body
        String response = "This is the response";
        t.sendResponseHeaders(200, response.length());
        OutputStream os = t.getResponseBody();
        os.write(response.getBytes());
        os.close();
    }
}

public class Main 
{
    HttpServer server = HttpServer.create(new InetSocketAddress(8000));
    server.createContext("/applications/myapp", new MyHandler());
    server.setExecutor(null); // creates a default executor
    server.start();
}

但我收到此错误消息:

描述资源路径位置类型 访问限制: 'HttpServer' 类型不是 API(对所需库 '/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/lib/rt.jar' 的限制) Main.java /test/ src/test line 7 Java 问题

这甚至意味着什么?根据 Oracle 文档,这应该可以工作。还是我弄错了?

【问题讨论】:

  • 你在使用 Eclipse 吗?
  • 是的,我正在使用 Eclipse。

标签: java


【解决方案1】:

错误消息要说明您正在访问的代码不是该库的官方 API 的一部分。更具体地说,com.sun.net.httpserver.HttpServer 是一个不能保证包含在所有 Java 8 运行时实现中的类。因此,使用该类的代码在某些 Java 安装中可能会失败。

为了仍然能够使用这个类,请查看这个问题的答案:Access restriction on class due to restriction on required library rt.jar?

【讨论】:

    【解决方案2】:

    不要以为你应该使用 Sun 的内部包,但你仍然可以尝试禁用错误:

    转到项目属性 -> Java 编译器 -> 错误/警告 -> 已弃用和受限的 API

    this post 也可以帮助你。

    如果问题仍然存在,您可以选择Christian Hujer's answer,他说 Eclipse 有一种称为访问限制的机制,可以防止您意外使用 Eclipse 认为不属于公共 API 的类。

    【讨论】:

      【解决方案3】:

      从构建路径中删除 JRE 系统库并将其添加回来。 选择“添加库”并选择 JRE 系统库。默认的应该可以工作。

      BuildPath >> 库

      【讨论】:

        猜你喜欢
        • 2018-04-25
        • 2016-07-25
        • 1970-01-01
        • 1970-01-01
        • 2016-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多