[IDE] 인텔리제이에서 한 프로젝트에서 main 2개 이상 만들기.

조시현·2024년 1월 30일
0

IDE

목록 보기
1/1

인텔리제이 환경에서 하나의 프로젝트 아래 여러개의 main을 만들고 자유롭게 코딩하고 실행하고 싶었다.

그러나 각각 main을 만들어서 실패를 하였지만,
현재 실행하고자 하는 main메서드가 아닌 다른 클래스에서 오류가 발생할 경우,
인텔리제이가 그 에러를 잡아주면서 현재 실행하고자 하는 main메서드에서도 영향을 끼쳤다.
이를 해결 하는 방식에는 3가지 방식이 있다.

0. 모듈을 여러개 만들어서 관리하는법

  • .class 파일에서 가장 마지막(근처)에 있는 모듈아래에 있는 코드들이 전부 정상적으로 실행이 되면 main끼리 아무런 문제가 없이 작동함으로
  • 최상위 아래에 source 폴더를 만들어서 그 아래에 현재 작성하고 있는 알고리즘 코드를 구현 한 후에
  • source폴더와 같은 위치든 다른 위치에 sub-module을 만들어서 sub-module 아래에 다 풀거나 풀다가 포기한 알고리즘 코드들을 모아 둔다.

    이렇게 하면 에러가 발생해도 내가 구현하고 있는(최상위 아래의 source폴더)에서 작동하는 main에 대해서 이상이 생기지 않음

  • 이렇게 하면 현재 코딩하고 있는 main 메서드에는 아무런 영향을 미치지 않으면서 에러와 상관잆어 다른 코드들을 보관 할 수 있다.

아래의 두 예시처럼 폴더를 구성하면 해결 됨을 알 수 있다.


예시 1

예시 2


주의

  • modoule이 아닌 source 폴더나 패키지를 만들면 의미가 없으니 주의해야한다.

아래처럼 해결되지 않을 수 있다.


1. 하위 폴더를 생성 후 하위 폴더를 exclue하는 방식

  • 이 방식은 source폴더나 source폴더의 하위 패키지를 exclude해줘서 컴파일을 제외시켜주는 방식입니다.
  • source 폴더의 하위에 있는 폴더만 class를 컴파일 시켜주는 인텔리제이의 방식을 이용하는 것 같습니다.
  • 이 방식은 컴파일 에러가 날 수 있을거 같은 .class파일이 있는 모든 source폴더를 exclude해줘야 합니다.
  1. 컴파일 시키고 싶지 않은 source폴더나 패키지를 마우스 오른쪽 클릭 후,
  2. mark directory as에서 excluded 클릭

아래를 보면 exclude를 통해서 해결됨을 확인 할 수 있다.


예시 1

위에서 아래로 변경


주의

  • 반드시 source folder를 exclude해줘야한다.

아래처럼 해결되지 않을 수 있다.

3. 자신의 class가 아닌 컴파일 에러를 마주쳐도 빌드가 통과하게 하는 방법

  1. setting -> Compiler 검색
  2. Build, Execution, Deplyment / Compiler / Java Compiler 클릭
  3. Use complier를 eclipse로 변경
    (proceed on errors 체크 확인)
  4. apply -> ok
  5. 현재 실행할 .class 파일을 한번 실행한다.
    5-1. Run/Debug Comfigurations에서 현재 실행할 파일의 .class 클릭
    5-2. 헤당 파일에 들어가서 modifiy options 클릭
    5-3. add before launch task 클릭
    5-4. add task 클릭
    5-5. bulid, no error check 클릭
    5-6. build 삭제 옆에 있는 x 클릭해서 삭제
    5-7. apply클릭 ok클릭
  6. 실행

잘 된다.

주의

현재 실행 할 파일을 실행하면 여전히 에러가 발행한다.
컴파일러를 이클립스로 변경하지 않고 하면 class의 위치를 찾지 못하는 거 같은 에러가 발생한다.


추가적인 해결 방안이 있는 것 같은 링크


https://www.jetbrains.com/help/idea/run-debug-multiple.html#before_launch
https://www.jetbrains.com/help/rider/Run_Debug_Multiple.html
https://stackoverflow.com/questions/73162343/run-multiple-main-methods-in-java-with-intellij
https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000121924-Is-it-possible-to-run-two-different-main-classes-at-the-same-time
Third-party plug-in: https://plugins.jetbrains.com/plugin/7248-multirun.

profile
노력하는 개발자

0개의 댓글