2017-10-30 17 views
1

그래서 내 프로젝트를 Java 9로 마이그레이션하려고 시도하지만 프로세스가 그렇게 쉽게 생각되지 않을 것 같습니다. 난 내 치어에 다음 인수를 해결할 수있는 눈에 보이지 않는 패키지에 대한 약간의 오차가 점점 유지 :Java 9 migration javax.annotation

<compilerArgs> 
    <arg>--add-modules</arg> 
    <arg>java.se.ee</arg> 
</compilerArgs> 

하지만 난 여전히 다음과 같은 오류 얻을 : 어떤 도움을 주시면 감사하겠습니다

cannot find symbol 
[ERROR] symbol: class Priority 
[ERROR] location: package javax.annotation 

+1

[Java 9 : 런타임시 javax.annotation.Resource에 액세스하는 방법] (https://stackoverflow.com/questions/46502001/java-9-how-to-get-access-to)을 읽었습니까? -javax-annotation-resource-at-run-time)? 그렇다면 그 밖의 무엇을 시도했는지 그리고 이것이 중복되지 않았 음을 설명하십시오. – nullpointer

+1

javax.annotation.Priority가 Java SE 또는 JDK에 없습니다. 클래스 경로에 javax.annotation-api-1.3.1.jar (maven 좌표 : javax/annotation/javax.annotation-api/1.3.1)가 있으면 제대로 작동합니까? –

+2

[Java 9 : 런타임시 javax.annotation.Resource에 액세스하는 방법] 가능한 복제본 (https://stackoverflow.com/questions/46502001/java-9-how-to-get-access-to-javax) -annotation-resource-at-run-time) – nullpointer

답변

2

javax.annotation.Priority의 출처가 확실하지 않지만 솔루션 analog to getting JSR 305 running on Java 9을 사용하면 문제를 해결할 수 있습니다. (비추천) Java EE 모듈을 추가하는 대신 java.xml.ws.annotation o 간접적으로 java.se.ee을 추가하여 외부 이슈 인 javax.annotation:javax.annotation-api에서 javax.annotation 패키지를 추가해야합니다.

코드를 모듈화하면 더 이상 작동하지 않으므로 patching modules을 시작해야합니다. 더 나아가서는 항상 java 또는 javax 패키지에서 오는 것처럼 보이는 비 JDK 클래스를 요구하는 솔루션에서 벗어나면 항상 문제가 발생할 수 있습니다.