IntelliJ Idea IDE에서 javafx.application 기호를 해결할 수 없습니다.


81

IntelliJ Idea IDE에서 JavaFX 응용 프로그램 을 만들려고했지만 다음과 같은 컴파일 오류가 발생했습니다.

java : javafx.application 패키지가 없습니다.

프로젝트 SDK와 프로젝트 언어 수준을 Java 8로 변경하고 프로젝트를 다시로드했지만 도움이되지 않았습니다. 그런 다음 설정에서 JavaFX 플러그인이 활성화되었는지 확인했습니다.

Google과 StackOverflow에서 검색 한 결과 무엇이 잘못되었는지 더 이상 알 수 없었습니다. 미리 도움을 주셔서 감사합니다.

PS 저는 archlinux OS에서 IntelliJ Idea 14.0과 java8.1.0_25를 사용하고 있습니다.


jdk 또는 jre에 대해 컴파일하고 있습니까? jdk인지 확인하십시오.
Stav Saad 2014

답변:


97

여기 에 표시된대로 JavaFX는 더 이상 openjdk에 포함되지 않습니다.

따라서 <Java SDK root>/jre/lib/ext/jfxrt.jar클래스 경로에 Project Structure -> SDKs -> 1.x -> Classpath있습니까? 그렇지 않다면 그 이유 일 수 있습니다. 그것을 추가하고 문제가 해결되는지 확인하십시오. 예를 들어 Ubuntu에서 sudo apt-get install openjfx.


이 파일은 Classpath와 SDK 루트 폴더에 없습니다. AUR에서 설치 한 Java에 jfxrt.jar 파일이없는 이유를 모르겠습니다.
rob111 2014

내 조언은 Oracle에 가서 OS에 적합한 배포판을 얻는 것입니다.
Ryan J

2
jfxrt.jar 파일을 적절한 디렉토리에 추가하고 SDK에 추가했습니다. 이제 내 IDE는 javafx를 인식하지만 런타임 예외 그래픽 장치 초기화에 실패했습니다. es2, sw QuantumRenderer 초기화 오류 : 적합한 파이프 라인을 찾을 수 없음 java.lang.RuntimeException : java.lang.RuntimeException : QuantumRenderer 초기화 오류 : 적합한 파이프 라인이 없습니다. 지금해야합니까?
rob111 2014

안타깝게도 시스템 구성 문제가있는 것 같습니다. Linux의 특정 배포가 사용자 지정 방식을 모르기 때문에이 문제를 해결하기 위해 무엇을 할 수 있는지 잘 모르겠습니다.
Ryan J

24

이것이 완벽한 솔루션이어야합니다. 시도하고 즐기십시오. 일부 명령이 제대로 작동하지 않으면 오류가 발생하면 직접 해결해보십시오. 나는 당신에게 필요한 주요한 것을주었습니다. 응용 프로그램이 다른 위치에 있거나 시스템 아키텍처가 다른 경우 직접 해결하십시오. 아주 쉽게 할 수 있습니다. 내 주어진 솔루션을 따르십시오.

0 단계 :

sudo apt-get install openjdk-8-jre

1 단계

sudo apt-get install openjfx

2 단계:

sudo cp /usr/share/java/openjfx/jre/lib/ext/* /usr/lib/jvm/java-1.8.0-openjdk-amd64/lib

3 단계 :

sudo cp /usr/share/java/openjfx/lib/* /usr/lib/jvm/java-1.8.0-openjdk-amd64/lib

4 단계 :

sudo chmod 777 -R /usr/lib/jvm/java-1.8.0-openjdk-amd64

이제 새 프로젝트를 열거 나 프로젝트를 다시 빌드하십시오. 행운을 빕니다.


1
OP는 APT가없는 아치 리눅스를 사용하고 있습니다
xdevs23

4
sudo chmod 777 -R /usr/lib/jvm/java-1.8.0-openjdk-amd64나쁜 생각입니다! 하지마!
Karl Richter

칼 리히터. 개발자로서. 개발 목적으로 이것을 할 수 있습니다. 777 권한을 부여하는 것은 비즈니스 및 일반 사용자에게 좋지 않습니다. 개발자이므로 문제가 없어야합니다. OS에 대해 잘 알고 있습니다. >> 또한 당신이 원한다면이 문제에 대해 더 많은 연구를하여 타자를 칠 수 있습니다. 감사합니다.
Himel Rana

5
루트킷과 바이러스가 파일을 자유롭게 재 작성할 수 있도록 시스템에 대한 권한을 방금 변경 한 경우 OS에 대해 아는 것은 아이러니 한 말입니다. 당신이 알고 있다고 생각 하는 것은 중요하지 않습니다 . 시스템 파일에서 절대로 chmod 777을 수행하지 마십시오. 이 폴더에 대한 적절한 권한은 644 ls -lha입니다. 간단 하게 표시됩니다.
Routhinator

16

IntelliJ와 함께 제공되는 것을 사용할 수 있습니다 <intellij>/jre64/lib/ext/jfxrt.jar..


13

공식 Arch Linux 저장소에서 java-openjfx 패키지를 다운로드해야합니다. (또한 openjdk8-openjdk 패키지가 있는지 확인하십시오). 그런 다음 Intellij에서 프로젝트를 열고 Project-Structure-> SDK-> 1.8-> Classpath로 이동하여 이전 JDK를 제거하고 이제 jfxrt.jar을 포함 할 새 JDK의 디렉토리를 클릭하십시오.


5
이것은 Intellij가 현재 찾지 못하는 패키지를 찾도록하기 위해 그가해야 할 일을 정확히 알려줍니다. 그게 그의 질문에 어떻게 대답하지 않습니까?
patterkyle

2

JDK보다 프로젝트 언어 수준이 낮을 수 있습니다.

"Projeckt 구조 / 프로젝트 / 프로젝트-> 언어 수준"이 JDK보다 낮은 지 확인하십시오. JDK 9에서 동일한 문제가 발생했으며 언어 수준은 기본적으로 6으로 설정되었습니다.

프로젝트 언어 레벨을 9로 설정했고 그 후 모든 것이 잘 작동했습니다.

동일한 문제가있을 수 있습니다.


2

문제를 해결하는 또 다른 방법 : 왼쪽 프로젝트 구조의 프로젝트 폴더에서 마우스 왼쪽 버튼을 클릭하고 작업 목록에서 "모듈 설정 열기"를 클릭합니다. 새 창에서 메뉴 아래에있는 SDK를 클릭합니다. title "Platform settngs"그런 다음 "Classpath"목록에서 jfxrt 플러그인 경로를 찾을 수 있는지 확인하고 그렇지 않은 경우 오른쪽의 + 기호를 클릭하고 jfxrt 플러그인의 레퍼토리를 선택합니다 (C : \ Program Files \ Java \ 내 데스크탑의 jdk1.8.0 \ jre \ lib \ ext \ jfxrt.jar)


2

샘플 Java 애플리케이션 :

나는 관련이 있고 질문의 문제를 해결하는 것 같기 때문에 여기에 다른 질문에서 내 대답을 교차 게시 하고 있습니다.

다음은 OpenJDK 12, JavaFX 12 및 Gradle 5.4를 사용한 예제 프로젝트입니다.

  • 제목이 "Hello World!"인 JavaFX 창을 엽니 다.
  • 작동하는 실행 가능한 배포 zip 파일을 빌드 할 수 있습니다 (테스트 할 Windows).
  • 추가 구성없이 IntelliJ에서 열고 실행할 수 있습니다.
  • 명령 줄에서 실행할 수 있습니다.

누군가 Github 프로젝트가 유용하다고 생각하기를 바랍니다.

Scala 케이스에 대한 지침 :

또한 다음은 Gradle Scala 플러그인에서 작동 하지만 Java에서는 작동하지 않는 지침 입니다. 다른 사람이 Scala, Gradle 및 JavaFX를 사용하는 경우를 대비하여 여기에 남겨 두겠습니다.

1) 질문에서 언급했듯이 JavaFX Gradle 플러그인을 설정해야합니다. Open JavaFX에는 이에 대한 자세한 문서가 있습니다.

2) 또한 어딘가에서 압축을 푼 플랫폼 용 JavaFX SDK 가 필요합니다 . 참고 : JavaFX 12 가 있는 최신 릴리스 섹션 으로 스크롤해야합니다 (어떤 이유로 LTS 11이 첫 번째 임).

3) 그런 다음 IntelliJ에서으로 이동 File -> Project Structure -> Libraries하여 ➕ 버튼을 누르고 lib압축이 풀린 JavaFX SDK 의 폴더를 추가합니다 .

스크린 샷에 대한 더 긴 지침 은 IntelliJ에 대한 뛰어난 Open JavaFX 문서를 확인하십시오 . 딥 링크가 작동하지 않으므로 문서 탐색에서 선택 JavaFX and IntelliJ하고 선택하십시오 Modular from IDE. 그런 다음 단계로 스크롤하십시오 3. Create a library. 문제가있는 경우 다른 단계도 확인하십시오.

이것이 원래 질문과 똑같은 상황이라고 말하기는 어렵지만 여기에 도착했을 정도로 비슷해 보였으므로 다른 사람들을 돕기 위해 여기에 내 경험을 추가하고 있습니다.


2

IntelliJ Idea에서

다음 사항이 올바르게 구성되었는지 확인하십시오.

1 단계:

파일-> 설정-> 플러그인-> javafx를 검색하고 활성화되었는지 확인하십시오.

2 단계 : 프로젝트 구조 (Ctrl + Shift + Alt + s)

플랫폼 설정-> SDK-> 1.8- > 클래스 경로에 "jre \ lib \ ext \ jfxrt.jar"이 있어야합니다.

3 단계 :

프로젝트 설정-> 프로젝트-> 프로젝트 SDK-1.8을 선택해야합니다.

프로젝트 설정-> 프로젝트-> 프로젝트 언어 레벨-8로 구성됨

Ubuntu : SDK에서 jfxrt.jar를 찾을 수없는 경우 sudo apt-get install openjfx를 설치하십시오.


0

나는 같은 문제 가 있었는데, 내 경우 에는 다음 과 같이 해결했습니다 .

1) 파일-> 프로젝트 구조 ----> 글로벌 라이브러리로 이동 2) jdk1.8.0_241 \ lib에 기본으로 포함 된 jfxrt.jar를 찾습니다 (설치 후) .3) 왼쪽 상단의 +를 클릭하여 추가합니다. 새 글로벌 라이브러리와 jdk1.8.0_241 Ex : (C : \ Program Files \ Java \ jdk1.8.0_241)의 경로를 지정했습니다.

도움이 되길 바랍니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.