所以我想尝试http客户端
package com.company; import jdk.incubator.http.HttpClient; public class Main { public static void main(String[] args) { HttpClient client = HttpClient.newHttpClient(); } }
我的模块信息如下所示
module com.company { requires jdk.incubator.httpclient; }
但是我明白了 java.lang.NoClassDefFoundError: jdk/incubator/http/HttpClient
java.lang.NoClassDefFoundError: jdk/incubator/http/HttpClient
我真的不明白为什么。我的Java版本是“ build 9-ea + 169”,并且使用了最新版本的IntelliJ idea(2017.1.3)。我调查了这个答案,看来我只需要向文件中添加要求,但是由于某种原因它不起作用。
如果我--add-modules jdk.incubator.httpclient用作启动参数,对我来说效果很好。
--add-modules jdk.incubator.httpclient
HttpClient client = HttpClient.newHttpClient(); client.executor().execute(() -> System.out.println("Here")); // prints Here
如果您说模块需要它,并不意味着它会被包括在内;默认情况下不包含。