> Java > java지도 시간 > 자동 생성된 모듈 이름이 있는 Java 9의 \'모듈 설명자를 파생할 수 없습니다\' 오류를 해결하는 방법은 무엇입니까?

자동 생성된 모듈 이름이 있는 Java 9의 \'모듈 설명자를 파생할 수 없습니다\' 오류를 해결하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-25 03:05:18
원래의
1033명이 탐색했습니다.

How to Resolve

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 식별자 토큰.
  • 도메인 이름에 대한 특정 예외를 제외하고 동일한 명명 규칙을 따르는 경우 패키지 이름을 모듈 이름으로 사용할 수 있습니다.
  • 도메인 이름에 특수 문자나 키워드가 포함된 경우 밑줄로 변환하거나 밑줄을 추가합니다.
  • 모듈 이름에는 선행 숫자를 사용할 수 없으며, 밑줄은 다음과 같이 사용할 수 있습니다. 이를 방지하려면 접두사를 사용하세요.

Java 9에서 밑줄을 사용하는 것은 키워드로 간주되므로 까다로울 수 있습니다. 따라서 모듈 이름이나 패키지 이름으로 "네이티브" 또는 "기본"을 사용하지 마십시오.

위 내용은 자동 생성된 모듈 이름이 있는 Java 9의 \'모듈 설명자를 파생할 수 없습니다\' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿