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;