Java 9에서 자동 생성된 모듈 이름에 대한 모듈 설명자를 파생할 수 없습니다.
Java 9를 사용할 때 시도할 때 오류가 발생할 수 있습니다. "native"와 같은 예약된 키워드가 포함된 자동 생성 모듈 이름으로 종속성을 추가합니다. 이 오류는 Java 9 모듈 이름이 특정 명명 규칙을 따라야 하고 "네이티브"가 유효한 Java 식별자가 아니기 때문에 발생합니다.
이 문제를 해결하는 한 가지 접근 방식은 "META-INF"를 추가하여 종속성의 JAR 파일을 수정하는 것입니다. /MANIFEST.MF" 파일에 "Automatic-Module-Name" 속성이 있습니다. 이 속성은 JAR이 자동 모듈로 변환될 때 사용할 모듈 이름을 지정합니다.
예:
<dependency> <groupId>io.netty</groupId> <artifactId>netty-transport-native-epoll</artifactId> <version>${netty.version}</version> <classifier>${epoll.os}</classifier> </dependency> // Add a manifest file to the dependency's JAR: <manifestEntries> <Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name> </manifestEntries>
또는 아티팩트 소유자는 "를 사용하여 JAR에 모듈 선언을 추가할 수 있습니다. module-info.java" 파일. 이러한 선언은 모듈 이름과 해당 종속성을 명시적으로 정의하므로 잘못된 모듈 이름 문제를 해결하는 데 도움이 될 수 있습니다. 그러나 이 접근 방식을 사용하려면 영향을 받는 라이브러리 소유자와의 협력이 필요합니다.
Java 모듈 시스템 사양에 따라 모듈 이름은 다음 명명 규칙을 따라야 합니다.
Java 9에서 밑줄을 사용하는 것은 키워드로 간주되므로 까다로울 수 있습니다. 따라서 모듈 이름이나 패키지 이름으로 "네이티브" 또는 "기본"을 사용하지 마십시오.
위 내용은 자동 생성된 모듈 이름이 있는 Java 9의 \'모듈 설명자를 파생할 수 없습니다\' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!