首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 9没有类定义异常

Java 9没有类定义异常
EN

Stack Overflow用户
提问于 2017-05-18 07:50:05
回答 3查看 3.5K关注 0票数 12

所以我想试试http客户端

代码语言:javascript
复制
package com.company;

import jdk.incubator.http.HttpClient;

public class Main {

public static void main(String[] args) {
    HttpClient client =  HttpClient.newHttpClient();

  }
}

我的模块信息看起来像这样

代码语言:javascript
复制
module com.company {
    requires jdk.incubator.httpclient;
}

但我得到了java.lang.NoClassDefFoundError: jdk/incubator/http/HttpClient

我也不明白为什么。我的java版本是“Build9-EA+ 169”,我使用了IntelliJ idea的最新版本(2017.1.3)。我查看了答案,看起来我只需要将需求添加到文件中,但由于某些原因,它无法工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-18 09:07:01

如果我使用--add-modules jdk.incubator.httpclient作为启动参数,对我来说很好。

代码语言:javascript
复制
HttpClient client = HttpClient.newHttpClient();
client.executor().execute(() -> System.out.println("Here")); // prints Here

如果您说您的模块需要它,并不意味着它将被包含;在默认情况下它不包括。

票数 13
EN

Stack Overflow用户

发布于 2017-05-18 13:58:17

你或IntelliJ肯定犯了一个错误。您使用的是一个孵化器模块,文档中说:

孵化器模块是标准JDK构建生成的JDK运行时映像的一部分。但是,对于类路径上的应用程序,默认情况下不会解析孵化器模块。类路径上的应用程序必须使用--add-modules命令行选项来请求解析孵化器模块。作为模块开发的应用程序可以直接根据孵化器模块指定requiresrequires transitive

我刚刚确认了在java-9-ea+169上的行为,即我可以编译和启动这样一个模块(从命令行),而不需要额外的标志。

您没有得到编译错误的事实似乎表明IntelliJ在编译中正确地包含了模块声明。您得到了一个运行时错误,并且这个答案帮助表明JVM没有将您启动的代码视为一个模块。

票数 10
EN

Stack Overflow用户

发布于 2017-06-13 03:12:19

我遇到了同样的问题

java.lang.NoClassDefFoundError: jdk/incubator/http/HttpClient

java-9-ea+173和IntelliJ。我遵循Eugene和Nicolais的建议,在Run/Debug配置中通过--add-modules jdk.incubator.httpclient显式地将--add-modules jdk.incubator.httpclient添加到模块路径(on macOS:Menu Bar -> Run -> Edit Configurations -> Configuration Tab -> VM Options -> --add-modules jdk.incubator.httpclient )

从那以后一切都很好。当然,您必须像前面所说的那样将依赖项添加到module-info.java中:

代码语言:javascript
复制
module network {
    requires jdk.incubator.httpclient;
}

更新

使用最新的IntelliJ IDEA 2017.2 EAP 172.2953.9,我不需要将--add-modules放到VM选项中。从盒子里出来就行了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44041698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档