에노테이션 프로세서 이용중 문의드립니다.
290
投稿した質問数 2
안녕하세요 좋은 강의 잘 들었습니다.
최근 애노테이션 프로세서를 이용해서 실습하는데 저는 메서드에 애노테이션을 붙여서 사용하는 연습을 했습니다.
해당 클래스의 클래스명을 받아오기 위해 '((Symbol.MethodSymbol) element).owner.name.toString()'로 클래스 명을 가져오는 것을 호출하려고 하는데 IDE상에서는 아무런 문제가 없는데 maven install 할 때 `package com.sun.tools.javac.code does not exist` 에러가 떠서 계속 빌드가 안되네요.
아 참고로 java8을 사용 중이고 adoptopenJDK를 사용중입니다.
분명히 tools.jar에 있는 패키지이고 분명 포함돼있는데 왜 빌드가 안되는지 모르겠습니다.
혹시 어떻게 해결하면 좋을까요?
回答 3
0
public interface AnnotationTest {
@Annotation
int test(int value);
}
답변 감사합니다.
일단 클래스패스에 tools.jar를 추가했는데도 계속 이렇게 발생을 하네요.
그래서 maven runner로 사용되는 JRE의 버전을 11로 올렸더니 정상적으로 컴파일이 됩니다.
그리고 위와 같이 메서드에서 선언할 경우 저 메서드를 가지고 있는 클래스인 'AnnotationTest' 정보를 가져오기 위해서 저렇게 사용한 거였는데요. 혹시 다른 방법이 있을까요?
0
우선은 왜 저 패키지에 들어있는 클래스가 필요한지 모르겠네요. 만드신 클래스의 이름을 가져오는데 변수 타입을 잘못 선언하신거 아닌가요? JDK에 들어있는 tools.jar를 IDE에서는 참조하지만 메이븐을 실행할 때 사용하는 JRE에는 tools.jar가 없어서 그런 빌드 에러가 나는거 같은데 tools.jar를 클래스패스에 추가하면 해결되겠지만 그보다는 근본적으로 저 안에 있는 클래스를 왜 참조하는지, 정말 필요한건지 부터 살펴보시면 좋을거 같습니다.
클래스 로더가 메소드 영역에 저장하는 것은 바이트코드인가요?
1
82
1
실제 개발 단계에서 이 같은 지식들을 적용할 기회가 있을까요?
0
102
1
코틀린 컴파일에 대해서
0
218
1
RuntimeException
0
340
1
Annotation processor에서 element type을 제한했는데도 다른 타입으로 컴파일이 됩니다...이상하게도..
0
398
1
gradle 사용하시는 분 도움
4
763
1
CGLib를 따라 해보면서 문제점이 있으며, 해결법입니다. JDK17입니다.
6
865
0
Spring Data JPA 동적 프록시를 사용 질문
0
419
1
어노테이션 프로세서 활용 예와 관련해 질문 있습니다.
0
503
1
"자바 언어가 플랫폼에 독립적이다" 라는 것에 대해 옳게 이해했는지 궁금합니다!
1
1133
1
'클래스 로더' 강의에서 클래스 로딩을 설명할 때 잘못된 것 같아 질문드립니다.
3
1257
2
metaspace 질문드립니다.
2
394
0
소스컴파일시점에 MagicMojaProcessor가 사용되면 안되는이유
0
422
0
다이나믹 프록시에서 리플렉션이 어떻게 사용되는거죠?
0
468
1
다이나믹 프록시의 단점
0
349
0
new 와 constructor.newInstance();의 차이
0
662
0
두번 실행해야하는 이유
0
470
0
제가 설명한게 맞는지 봐주실 수 있나요?(jvm설명)
0
444
0
JIT 컴파일러와 인터프리터
1
1011
1
Method.invoke()
0
425
1
site 폴더내에 jacoco 폴더가 생기지 않습니다.
0
986
1
메모리 영역의 구조 질문
0
448
1
GC 설명부분 질문드립니다.
0
486
1
jit 와 인터프리터 질문
1
393
1

