java: 未命名的模块同时从 io.netty.codec 和 io.netty.codec.xml 读取程序包 io.netty.handler.codec.xml
按照Netty官方的配置,在module-info.java添加模块
- io.netty.all
- io.netty.buffer
- io.netty.codec
- io.netty.codec.dns
- io.netty.codec.haproxy
- io.netty.codec.http
- io.netty.codec.http2
- io.netty.codec.memcache
- io.netty.codec.mqtt
- io.netty.codec.redis
- io.netty.codec.smtp
- io.netty.codec.socks
- io.netty.codec.stomp
- io.netty.codec.xml
- io.netty.common
- io.netty.handler
- io.netty.handler.proxy
- io.netty.resolver
- io.netty.resolver.dns
- io.netty.transport
- io.netty.transport.epoll (native omitted - reserved keyword in Java)
- io.netty.transport.kqueue (native omitted - reserved keyword in Java)
- io.netty.transport.unix.common (native omitted - reserved keyword in Java)
- io.netty.transport.rxtx
- io.netty.transport.sctp
- io.netty.transport.udt
但是当你运行,你会得到一个超红的报错java: 未命名的模块同时从 io.netty.codec 和 io.netty.codec.xml 读取程序包 io.netty.handler.codec.xml
module com.wuxianggujun.toolbox {
requires javafx.controls;
requires javafx.fxml;
requires io.netty.all;
requires io.netty.buffer;
requires io.netty.codec;
requires io.netty.codec.dns;
requires io.netty.codec.haproxy;
requires io.netty.codec.http;
requires io.netty.codec.http2;
requires io.netty.codec.memcache;
requires io.netty.codec.mqtt;
requires io.netty.codec.redis;
requires io.netty.codec.smtp;
requires io.netty.codec.socks;
requires io.netty.codec.stomp;
requires io.netty.codec.xml;
requires io.netty.common;
requires io.netty.handler;
requires io.netty.handler.proxy;
requires io.netty.resolver;
requires io.netty.resolver.dns;
requires io.netty.transport;
//requires io.netty.transport.epoll; (native省略-Java 中的保留关键字)
//requires io.netty.transport.kqueue; (native省略-Java 中的保留关键字)
requires io.netty.transport.unix.common;// (native省略-Java 中的保留关键字)
requires io.netty.transport.rxtx;
requires io.netty.transport.sctp;
requires io.netty.transport.udt;
opens com.wuxianggujun.toolbox to javafx.fxml;
exports com.wuxianggujun.toolbox;
exports com.wuxianggujun.toolbox.net;
exports com.wuxianggujun.toolbox.cache;
opens com.wuxianggujun.toolbox.cache to javafx.fxml;
}
解决办法
根据报错,我们可以注释掉 //requires io.netty.codec;
或者将以下这些注释掉就可以了。
// requires io.netty.codec.dns; // requires io.netty.codec.haproxy; // requires io.netty.codec.http; // requires io.netty.codec.http2; // requires io.netty.codec.memcache; // requires io.netty.codec.mqtt; // requires io.netty.codec.redis; // requires io.netty.codec.smtp; // requires io.netty.codec.socks; // requires io.netty.codec.stomp; // requires io.netty.codec.xml;



