Próbowałem stworzyć aplikację JavaFX w IntelliJ Idea IDE, ale otrzymałem błąd kompilacji, który powiedział:
java: pakiet javafx.application nie istnieje.
Zmieniłem Project SDK i Project Language Level na Java 8, ponownie załadowałem projekt, ale to nie pomogło. Następnie w ustawieniach sprawdziłem czy wtyczka JavaFX jest włączona.
Wyszukiwanie w Google i StackOverflow nie dało mi więcej pomysłów na to, co jest nie tak. Z góry dziękuję za pomoc.
PS Używam IntelliJ Idea 14.0 z java8.1.0_25 na archlinux OS.
java
intellij-idea
javafx
rob111
źródło
źródło
Odpowiedzi:
Jak wskazano tutaj , JavaFX nie jest już zawarta w openjdk.
Więc sprawdź, czy masz
<Java SDK root>/jre/lib/ext/jfxrt.jar
na swojej ścieżce klasowej podProject Structure -> SDKs -> 1.x -> Classpath
? Jeśli nie, to może być powód. Spróbuj go dodać i sprawdź, czy to rozwiązuje problem, np. W systemie Ubuntu, zainstaluj, a następnie pakiet openjfx z rozszerzeniemsudo apt-get install openjfx
.źródło
To powinno być Twoje idealne rozwiązanie. Spróbuj i ciesz się. Jeśli jakieś polecenie nie działa poprawnie, oznacza to, że jeśli pojawi się jakiś błąd, spróbuj rozwiązać go samodzielnie. Dałem ci najważniejszą rzecz, której potrzebujesz. Jeśli Twoja aplikacja znajduje się w innym miejscu lub architektura Twojego systemu jest inna, rozwiąż ten problem samodzielnie. Bardzo łatwo to zrobić. Po prostu postępuj zgodnie z moim rozwiązaniem.
Krok 0:
sudo apt-get install openjdk-8-jre
Krok 1
Krok 2:
sudo cp /usr/share/java/openjfx/jre/lib/ext/* /usr/lib/jvm/java-1.8.0-openjdk-amd64/lib
Krok 3:
sudo cp /usr/share/java/openjfx/lib/* /usr/lib/jvm/java-1.8.0-openjdk-amd64/lib
Krok 4:
sudo chmod 777 -R /usr/lib/jvm/java-1.8.0-openjdk-amd64
teraz otwórz nowy projekt lub przebuduj projekt. Powodzenia.
źródło
sudo chmod 777 -R /usr/lib/jvm/java-1.8.0-openjdk-amd64
to zły pomysł! Nie rób tego!ls -lha
to pokaże.Można użyć jednego, że pochodzi z IntelliJ:
<intellij>/jre64/lib/ext/jfxrt.jar
.źródło
Musisz pobrać pakiet java-openjfx z oficjalnych repozytoriów Arch Linux. (Upewnij się również, że masz pakiet openjdk8-openjdk). Po wykonaniu tej czynności otwórz swój projekt w Intellij i przejdź do Project-Structure -> SDKs -> 1.8 -> Classpath i spróbuj usunąć stary JDK, który miałeś i kliknąć katalog dla nowego JDK, który będzie teraz zawierał jfxrt.jar.
źródło
Możesz mieć niższy poziom języka projektu niż JDK.
Sprawdź, czy: „Struktura projektu / projekt / Projekt-> poziom języka” jest niższy niż Twój JDK. Miałem ten sam problem z JDK 9, a poziom języka był domyślnie ustawiony na 6.
Ustawiłem poziom języka projektu na 9 i po tym wszystko działało dobrze.
Możesz mieć ten sam problem.
źródło
Inny sposób rozwiązania problemu: Kliknij lewym przyciskiem myszy folder projektu w strukturze projektu po lewej stronie, a następnie na liście akcji kliknij „Otwórz ustawienia modułu” W nowych oknach kliknij SDK, które jest w menu tytuł "Ustawienia platformy" Następnie sprawdź na liście "Ścieżka klas", czy możesz znaleźć ścieżkę do wtyczki jfxrt. Jeśli nie, kliknij symbol + po prawej stronie i wybierz repertorium wtyczki jfxrt (C: \ Program Files \ Java \ jdk1.8.0 \ jre \ lib \ ext \ jfxrt.jar na moim pulpicie)
źródło
Przykładowa aplikacja Java:
Wstawiam tutaj moją odpowiedź z innego pytania , ponieważ jest ona powiązana i wydaje się, że rozwiązuje problem w pytaniu.
Oto mój przykładowy projekt z OpenJDK 12, JavaFX 12 i Gradle 5.4
Mam nadzieję, że ktoś uzna projekt Github za przydatny.
Instrukcje dotyczące sprawy Scala :
Dodatkowo poniżej znajdują się instrukcje, które działają z wtyczką Gradle Scala , ale wydają się nie działać z Javą . Zostawiam to tutaj na wypadek, gdyby ktoś inny również używał Scali, Gradle i JavaFX.
1) Jak wspomniano w pytaniu, należy skonfigurować wtyczkę JavaFX Gradle. Open JavaFX zawiera szczegółową dokumentację na ten temat
2) Dodatkowo musisz gdzieś rozpakować JavaFX SDK dla swojej platformy . UWAGA: pamiętaj, aby przewinąć w dół do sekcji Najnowsze wydania, gdzie jest JavaFX 12 (z jakiegoś powodu LTS 11 jest pierwszy).
3) Następnie w IntelliJ przejdź do
File -> Project Structure -> Libraries
, naciśnij przycisk ➕ i dodajlib
folder z rozpakowanego pakietu JavaFX SDK.Aby uzyskać dłuższe instrukcje ze zrzutami ekranu, zapoznaj się z doskonałymi dokumentami Open JavaFX dla IntelliJ Nie mogę uzyskać działającego głębokiego łącza, więc wybierz,
JavaFX and IntelliJ
a następnieModular from IDE
z nawigacji do dokumentów. Następnie przewiń w dół do kroku3. Create a library
. Jeśli masz problemy, rozważ sprawdzenie pozostałych kroków.Trudno powiedzieć, czy to dokładnie ta sama sytuacja, co w pierwotnym pytaniu, ale wyglądało to na tyle podobnie, że tu wylądowałem, więc tutaj dodam swoje doświadczenie, aby pomóc innym.
źródło
W IntelliJ Idea,
Sprawdź, czy następujące rzeczy są poprawnie skonfigurowane,
Krok 1:
Plik -> Ustawienia -> Wtyczki -> wyszukaj javafx i upewnij się, że jest włączony.
Krok 2: Struktura projektu (Ctrl + Shift + Alt + s)
Ustawienia platformy -> SDK -> 1.8 -> Upewnij się, że ścieżka klasy powinna mieć „jre \ lib \ ext \ jfxrt.jar”
Krok 3:
Project Settings -> Project -> Project SDK - należy wybrać 1.8
Ustawienia projektu -> Projekt -> Poziom języka projektu - skonfigurowany jako 8
Ubuntu: jeśli nie znaleziono jfxrt.jar w Twoich SDK, zainstaluj sudo apt-get install openjfx
źródło
Miałem ten sam problem , w moim przypadku rozwiązałem go poprzez :
1) przechodząc do File -> Project Structure ----> Global libraries 2) szukając jfxrt.jar zawartego domyślnie w jdk1.8.0_241 \ lib (po zainstalowaniu) 3) kliknij + w lewym górnym rogu, aby dodać nowa biblioteka globalna i określiłem ścieżkę do mojego jdk1.8.0_241 Np .: (C: \ Program Files \ Java \ jdk1.8.0_241).
mam nadzieję, że to Ci pomoże
źródło