inflearn logo
강의

講義

知識共有

もっとJava、コードを操作するさまざまな方法

에노테이션 프로세서 이용중 문의드립니다.

290

bass02230037

投稿した質問数 2

0

 안녕하세요 좋은 강의 잘 들었습니다.

최근 애노테이션 프로세서를 이용해서 실습하는데 저는 메서드에 애노테이션을 붙여서 사용하는 연습을 했습니다.

해당 클래스의  클래스명을 받아오기 위해 '((Symbol.MethodSymbol) element).owner.name.toString()'로 클래스 명을 가져오는 것을 호출하려고 하는데 IDE상에서는 아무런 문제가 없는데 maven install 할 때 `package com.sun.tools.javac.code does not exist` 에러가 떠서 계속 빌드가 안되네요.

아 참고로 java8을 사용 중이고 adoptopenJDK를 사용중입니다.

분명히 tools.jar에 있는 패키지이고 분명 포함돼있는데 왜 빌드가 안되는지 모르겠습니다.

혹시 어떻게 해결하면 좋을까요?

JPA spring java

回答 3

0

whiteship

Element 인터페이스에 있는 getEnclosingElement()를 사용해보세요.

0

bass02230037

public interface AnnotationTest {

@Annotation

int test(int value);
}

답변 감사합니다.

일단 클래스패스에 tools.jar를 추가했는데도 계속 이렇게 발생을 하네요.

그래서 maven runner로 사용되는 JRE의 버전을 11로 올렸더니 정상적으로 컴파일이 됩니다.

그리고 위와 같이 메서드에서 선언할 경우 저 메서드를 가지고 있는 클래스인 'AnnotationTest' 정보를 가져오기 위해서 저렇게 사용한 거였는데요. 혹시 다른 방법이 있을까요?

0

whiteship

우선은 왜 저 패키지에 들어있는 클래스가 필요한지 모르겠네요. 만드신 클래스의 이름을 가져오는데 변수 타입을 잘못 선언하신거 아닌가요? 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