Error: IntellJ - Build, parsing java

NtoZ·2023년 3월 15일
0

error

목록 보기
2/7
post-thumbnail

오류 발단

  • 오류 설명:
    인텔리제이에 적응하던 중 갑작스럽게 설정이 변경되어 특정 소스코드를 실행하려고 하기만 하면 프로젝트 내의 전 파일을 빌드, 순회하며 Run은 되지 않고 에러가 있는 소스코드만 잡히는 현상이 발생했다.
    심지어 하나의 소스코드를 실행하려고 해봐도, 우측하단 Parsing Java ( 그 이전에 지나치듯 Build...) 과정을 거치며 약 7초 정도의 시간이 지난 이후 실행되었다. 아니, 정확히 말하자면 실행되지도 않고 프로젝트 내 오류가 있는 파일만 Build Output 창만 출력되었던 것이다!
    (정확히 말하면 오류는 아니었지만...)

  • 오류 해결을 위한 노력:
    File-Setting-Build, Execution, Deployment- Compiler 항목의 Shared build process heap size: 700 -> 3000 (빌드과정의 힙 용량을 700에서 3000으로 올렸다.)
    ➡️그러나 해결 되지 않았다. 애초에 내가 하고싶은건 빌드가 아니라 실행이었다... (빌드가 먼저 실행되었을 뿐)

    [intelliJ] 다른 클래스 컴파일 오류 무시하고 현재 클래스 RUN 하기 에서

    제일 먼저 intelliJ IDEA > Preferences... 를 클릭한다.
    그 다음, Build, Excecution, Deployment > Compiler 클릭 후 제일 상단의 Use compiler 항목을 Eclipse 로 설정한다.
    그리고 창 중앙의 Elipse Options 라인의 Proceed on errors 체크!
    이후 Apply, OK 를 눌러 해당 설정을 적용 후 창을 닫는다.

    그 다음은 상단바의 Run > Edit Configurations... 를 클릭한다.
    창이 열리면 파란색 글자의 Modify options > 맨 아래 Before Launch 라인의 Add before launch task 를 클릭한다. 그러면 위 처럼 자동으로 옵션 박스가 열릴텐데, Build, no error check 를 클릭하면 된다. 만약 옵션 창이 닫혔다면 + 아이콘을 클릭하여 다시 설정할 수 있다. 그리고 Apply, OK를 클릭하면 끝!
    ➡️ 여전히 해결되지 않았다. 계속해서 Run 이전 Build가 동작했다. 또한 에러도 잡아냈다...

  • ③ 인텔리제이 설정 초기화 / 삭제 후 재설치 - 처음에 인텔리제이를 설치할 때 실행파일이 아닌 zip 파일로 설치했었는데 아무리 삭제해도 설정까지 초기화되지 않았다. 인텔리제이 File 탭에 내장된 설정 초기화까지 해봤지만 여전히 같은 문제가 발생했다. 이 쯤되면 처음에 잘 됐던게 이레귤러라는 생각이 들었다.

    ④ 노트북 포맷 (최악의 선택) - 용량도 조금 모자란 측면이 있다고 생각이 들어서 컴퓨터를 포맷했다. 그런데 포맷 도중에 에러가 발생해 부팅도 실패하고 하루 공부를 완전히 날려먹었다. 안전모드 부팅이 되지 않아 서비스센터를 다녀왔다. 설정 관련해서 문제가 생긴다고해서 포맷까지 하는 건 최악의 선택이다. 요행히 잘 된다고 가정해도 그건 운에 의한 요소이지 환경 세팅에 관한 공부에는 전혀 도움이 되지 않는다.


## 문제해결 노력 - 문제 해결: (포맷 이후 같은 문제 발생) ① <재시도> `File-Setting-Build, Execution, Deployment- Compiler` 항목의 `Shared build process heap size`: 700 -> 3000 (빌드과정의 힙 용량을 700에서 3000으로 올렸다.) ② <재시도>`intelliJ IDEA > Preferences`... 를 클릭한다. 그 다음, `Build, Excecution, Deployment > Compiler` 클릭 후 제일 상단의 `Use compiler` 항목을 `Eclipse` 로 설정한다. ③ 소스코드 실행 -> `Run-Edit configurations- (실행된 소스코드 파일명 선택)'+'ADD New Configuration` - Run의 파란색 글씨 `Modify options`-`Java`탭 - `Do not build before run` ![](https://velog.velcdn.com/images/9to0/post/f51a943a-7668-4a6b-8662-80443bf1510d/image.png)✔️✔️✔️ 드디어 Build 없이 Run이 먼저 동작했다.

④ 그러나 매번 클래스 하나를 실행하고 똑같은 옵션을 할 수는 없다! 공통 옵션을 적용해보기로 했다. Run-Edit configurations -Edit configuration templates에서 Application- Modify options를 클릭에서 Java탭의 Do not build before run을 클릭한다.➡️ 해당 프로젝트에 설정이 일괄적용 된다.


  • 추가적인 오류? 궁금증? :
    shift + F10을 누르면 해당 소스파일이 아니라 이전에 실행되었던 소스파일이 실행되곤 한다. 이유가 뭘까?
    Ctrl + shift + F10을 누르면 해결되는 줄 알았으나,
    코드 변경 이전 값이 실행된다.
    3행과 15행을 바꿔주었는데 그 이전 값인 1, 6이 출력되는 모습.

문제해결 노력2

  • 환경설정 리셋 : File - Manage IDE Setting - Restore Default Setting

    소스코드 실행 -> Run-Edit configurations- Edit configuration templates - Run의 파란색 글씨 Modify options-Before launch탭 - (자동으로) Add new task창이 뜨면 Build, no check error
    이제 run 자체는 되지만 여전히 에러가 있는 소스코드를 잡아낸다.
    (8-1을 실행시켰는데 에러가 있는 8-7탭으로 뜬금없이 전환됨.)

현재 파일만 컴파일 후 실행하려면 다음과 같은 단계를 따르면 됩니다.
1. 실행하려는 파일이 열려 있는지 확인합니다.
2. Shift + F10을 눌러 실행 구성을 엽니다.
3. 실행 구성에서 "Before Launch"를 선택합니다.
4. 실행 구성의 오른쪽에있는 "Add" 버튼을 클릭하고 "Run Another Configuration"을 선택합니다.
5. "Run Another Configuration"에서 "Build"를 선택한 다음 "OK"를 클릭합니다.
6. 실행 구성에서 "Build" 구성을 삭제합니다.
7. "OK"를 클릭하여 실행 구성을 저장합니다.
이제 Shift + F10을 눌러 현재 열려있는 파일만 실행할 수 있습니다

인텔리제이에서 코드를 실행할 때 불필요한 빌드 및 parsing 작업을 줄이기 위해 몇 가지 방법을 제공합니다.
1. "Make before run" 옵션 비활성화: "Run/Debug Configurations"에서 실행 구성 설정 창을 열고 "Before Launch" 항목에서 "Build" 또는 "Make" 작업을 제거하거나 비활성화할 수 있습니다.
2. "Skip tests" 옵션 활성화: "Run/Debug Configurations"에서 실행 구성 설정 창을 열고 "Configuration" 탭에서 "Before Launch" 항목에서 "Run Maven Goal" 또는 "Run Gradle Task" 작업을 추가하여 "Skip Tests" 옵션을 활성화할 수 있습니다.
3. "Compile on save" 옵션 활성화: "Settings/Preferences"에서 "Build, Execution, Deployment" -> "Compiler"로 이동하여 "Compile Kotlin to JVM bytecode" 또는 "Java Compiler" 섹션에서 "Configure Kotlin" 또는 "Configure annotation processing" 버튼을 클릭하여 "Compile on save" 옵션을 활성화할 수 있습니다. 이 옵션을 활성화하면 파일을 저장할 때마다 빌드 및 parsing 작업을 수행하지 않고 컴파일할 수 있습니다.


타협점

현재 Edit configuration의 template 설정에서 Application - Do not build before run 으로 설정해주고 변경사항이 있을 때마다 Ctrl + Shift +F9로 다시 컴파일 후 Shift F10으로 실행해주는 것으로 타협 봤다.

  • maven이나 gradle같은 빌드 툴을 사용하면 개선점이 있으려나?

아 방법을 찾았네요 
상단에 run > Edit Configurations.. > Configuration 탭
맨 밑에 Before launch:~~  부분에서
Build 아이콘 선택 후 Remove (Alt + Del) 해서 
없애주면 되네요

profile
9에서 0으로, 백엔드 개발블로그

0개의 댓글