티스토리 뷰

개발/뻘짓 기록물

JavaFX 삽질기록(2)

기억고양이 2023. 1. 15. 19:41
반응형

지난번 삽질기록을 올린 이후로 더더더욱 많은 삽질을 했다.

13일에도 한 3시간을 내다버렸고, 오늘은.. 6시간?을 오류 찾는다고 해멨었다.

 

검색한 오류도 많았는데 너무 많이 검색하다보니 뭘 검색했는지도 모르겠다...

 

어쨌든 오늘 Springboot+gradle+javafx로 띄우는걸 성공은 했다!

구성 환경

(SpringBoot 2.7.7 | Gradle 6.9.3 | JavaFx 11)

  • Spring: https://start.spring.io/ SpringBoot initializr에서 생성된걸 활용, 디펜던시는 입맛대로 추가.
  • Gradle: 역시 기본세팅 그대로만 사용.
  • JavaFx: Gradle 설정에 의존성만 추가함.
  • IDE : Intellij 2022.3.1 로 했고...이클립스랑 별 다를거 없이, Gradle 빌드파일 수정후 새로고침만 잘 해주면 된다.

실행안됐던 문제를 파악해보면

  1. build.gradle 설정이 잘못됨.
  2. SpringApplication 실행 설정이 잘못됨.
  3. module-info.java 파일을 괜히 추가해서 더 꼬였음.
  4. JavaFx, Spring 프로젝트를 각각 따로만들고 > 두 프로젝트를 합쳐보겠다고 잘못된 설정을 계속 복붙한것
  5. 결정적으로 내가 Spring을 너무 모름

1 - Gradle 7.6 > 6.9.3으로 변경 및 아래의 해결가이드 링크를 따라 알맞은 설정을 추가함.

주석이 새로 맞춘 부분이다.

plugins {
	id 'java'
	id 'org.springframework.boot' version '2.7.7'
	id 'io.spring.dependency-management' version '1.0.15.RELEASE'

// add JavaFx plugins (start)
  id 'application'
  id 'org.openjfx.javafxplugin' version '0.0.13'
}
javafx {
    version = "11.0.2"
    modules = [ 'javafx.controls' ]
}
mainClassName = 'ToStringParserApplication'
// add JavaFx plugins (end)

이렇게 맞추고 Gradle 업데이트를 진행했다. 프로젝트 세팅이다보니 버전에 매우 민감했던거 같기도 하다.

 

2. 기존엔  MainApplication 파일을 하나로 쓰고, 거기에 소스를 다 넣어뒀었는데

MainAppication, ParserApplication 클래스 이렇게 두개로 분리하고 start method를 추가했다. (Start 메소드는 JAVA FX 실행시 필수인것 같다)

 

+) JavaFX 사용시 Application 클래스 상속은 필수

+) Start 메서드를 재정의해야 본인이 원하는 내용을 띄울 수 있는듯. XML로 화면 구성하는건 추후에 추가...

+) 현재는 MainAppication에서 ParserApplication 을 Launch하는 구조임.

MainApp


SecondApp


3. module-info.java > 잘 모르면 굳이 더 안건드려도 되더라. 이거 추가했다가 온갖 오류를 맛봤는데

결국엔 필요없었다. (모듈이 많을때 연결하는 용도인것 같았음)

 

4. 제대로 된 가이드를 찾아서 했으면 이 합치는 과정이 어렵지는 않았을것 같다. 혼자서 무작정 합쳐보겠다고 덤벼서 삽질을 더 많이 했었다.

 

5. 음..토비의 스프링을 4년전에 샀는데 아직도 책이 깨끗한게 문제....


참고한 해결가이드

첫 가이드는 JetBrains에서 제공하는 javaFX + SpringBoot 어플리케이션 만들기다.

    > Application 소스를 그대로 따라서 작성했다. 너무 잘됨. 싸랑해요 JetBrains

    > 영상도 제공되니 maven 기반이면 그대로 따라하기 더 좋을것 같다.

 

두번째 가이드는 Gradle에서 JavaFx 설정하기

    > Gradle 설정을 잘못해서 다음 오류가 계속 났다.

Could not find method compile~

    > 위 이미지중 1번 내용처럼 추가해주니 잘 됐었다.

    > Gradle을 처음써보니 오류원인을 더 못찾았다. 결국엔 gradle에 내가 추가한 내용이 틀렸다는 것이니, 마지막에 추가한 내용을 지워가면서 실행을 해보는게 좋겠다.

 


오늘의 검색기록...

이제 버튼 액션이랑,  화면구성을 내 맘대로 꾸미는 방법을 찾고

데스크탑에서 실행시키는 프로그램으로 뽑는법을 알아봐야겠다.

반응형