IntelliJ आइडिया आईडीई में प्रतीक javafx.application को हल नहीं कर सकता


81

मैंने IntelliJ Idea IDE में JavaFX एप्लिकेशन बनाने की कोशिश की, लेकिन मुझे यह संकलन त्रुटि लगी।

जावा: पैकेज javafx.application मौजूद नहीं है।

मैंने प्रोजेक्ट SDK और प्रोजेक्ट भाषा स्तर को बदलकर Java 8 कर दिया है, परियोजना को फिर से लोड किया है लेकिन इससे कोई मदद नहीं मिली। तब मैंने जाँच की कि सेटिंग्स में JavaFX प्लगइन सक्षम था या नहीं।

Google और StackOverflow पर खोज ने मुझे इस बारे में अधिक विचार नहीं दिया कि क्या गलत है। अग्रिम में किसी भी मदद के लिए धन्यवाद।

पुनश्च मैं IntelliJ Idea 14.0 का उपयोग java8.1.0_25 के साथ आर्चलिनक्स ओएस पर कर रहा हूं।


आप jdk या jre के खिलाफ संकलन कर रहे हैं? सुनिश्चित करें कि इसकी जद।
स्टैव साद

जवाबों:


97

जैसा कि यहाँ बताया गया है , JavaFX अब Openjdk में शामिल नहीं है।

तो जाँच करें, अगर आपके पास <Java SDK root>/jre/lib/ext/jfxrt.jarअपने वर्गपथ पर है Project Structure -> SDKs -> 1.x -> Classpath? यदि नहीं, तो ऐसा क्यों हो सकता है। इसे जोड़ने का प्रयास करें और देखें कि क्या यह आपके समस्या को ठीक करता है, उदाहरण के लिए, उबंटू पर, फिर ओपनजफैक्स पैकेज स्थापित करें sudo apt-get install openjfx


मेरे पास यह फ़ाइल Classpath और SDK रूट फ़ोल्डर में नहीं है। मुझे नहीं पता कि मेरा जावा जो मैंने AUR से स्थापित किया है, उसमें jfxrt.jar फ़ाइल नहीं है।
रोब ११

मेरी सलाह होगी कि आप ओरेकल जाएं और अपने ओएस के लिए उचित वितरण प्राप्त करें।
रयान जे

2
मैंने jfxrt.jar फ़ाइल को निर्देशिका को स्वीकृत करने और SDKs में जोड़ा है। अब मेरी IDE पहचान javafx BUT I को रनटाइम एक्सेप्शन ग्राफिक्स डिवाइस आरंभीकरण के लिए विफल हुआ: es2, sw त्रुटि शुरुआती क्वांटम रेंडरर: कोई उपयुक्त पाइपलाइन नहीं मिली java.lang। अब के लिए है?
3

दुर्भाग्य से ऐसा लगता है कि आपके पास सिस्टम कॉन्फ़िगरेशन समस्या है ... मुझे यकीन नहीं है कि आप इसे ठीक करने के लिए क्या कर सकते हैं जैसा कि मुझे नहीं पता है कि लिनक्स का आपका विशेष वितरण कितना कस्टम है।
रयान जे

24

यह आपका सही समाधान होना चाहिए। कोशिश करो और आनंद लो। यदि कुछ कमांड ठीक से काम नहीं करता है अर्थात यदि आपको कोई त्रुटि मिलती है, तो इसे स्वयं हल करने का प्रयास करें। मैंने आपको मुख्य चीज़ दी है जिसकी आपको ज़रूरत है। यदि आपका एप्लिकेशन किसी अन्य स्थान पर है, या आपका सिस्टम आर्किटेक्चर अलग है, तो इसे स्वयं हल करें। यह करना बहुत आसान है। बस मेरे दिए गए समाधान का पालन करें।

चरण ०:

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 आर्क लिनक्स का उपयोग कर रहा है जिसमें
xdevs23

4
sudo chmod 777 -R /usr/lib/jvm/java-1.8.0-openjdk-amd64एक बुरा विचार है! यह मत करो!
कार्ल रिक्टर

कार्ल रिक्टर। जैसा कि आप एक डेवलपर हैं। विकास के उद्देश्य से आप ऐसा कर सकते हैं। 777 की अनुमति देना व्यापार और सामान्य उपयोगकर्ता के लिए बुरा है। जैसा कि आप एक डेवलपर हैं इसे कोई समस्या नहीं होनी चाहिए। आप अपने ओएस के बारे में अच्छी तरह से जानते हैं। >> इसके अलावा अगर आप चाहें तो इस समस्या के बारे में अधिक शोध करके बल्लेबाज कर सकते हैं। धन्यवाद।
हिमेल राणा

5
अपने ओएस के बारे में जानना एक विडंबनापूर्ण बयान है जब आपने अपने सिस्टम पर अनुमतियों को इस तरह से बदल दिया है जो रूटकिट्स और वायरस को फ़ाइल को स्वतंत्र रूप से फिर से लिखने की अनुमति देता है। इससे कोई फर्क नहीं पड़ता कि आप क्या सोचते हैं आप जानते हैं। कभी भी सिस्टम फ़ाइलों पर एक chmod 777 करें। इस फ़ोल्डर के लिए उचित अनुमति 644 हैं। एक सरल ls -lhaयह दिखाएगा।
राउटरिनेटर


13

आपको java-openjfx पैकेज को आधिकारिक आर्क लिनक्स रिपोज से डाउनलोड करना होगा। (इसके अलावा, सुनिश्चित करें कि आपके पास Openjdk8-openjdk पैकेज है)। ऐसा करने के बाद, Intellij में अपना प्रोजेक्ट खोलें और Project-Structure -> SDKs -> 1.8 -> Classpath पर जाएं और आपके पास मौजूद पुराने JDK को हटाने का प्रयास करें और नए JDK के लिए निर्देशिका पर क्लिक करें जिसमें अब Ffxrt.jar होगा।


5
यह उसे बताता है कि इंटैलिज को वह पैकेज खोजने की आवश्यकता है जो वह वर्तमान में नहीं पा रहा है। कैसे है कि उसके सवाल का जवाब नहीं है?
२३:०६ ​​पर patterkyle

2

आपके पास अपने JDK की तुलना में कम परियोजना भाषा का स्तर हो सकता है।

जांचें कि क्या: "प्रॉजेक्ट स्ट्रक्चर / प्रोजेक्ट / प्रोजेक्ट-> लैंग्वेज लेवल" आपके JDK से कम है। मुझे JDK 9 के साथ भी यही समस्या थी और भाषा का स्तर प्रति डिफ़ॉल्ट सेट 6 था।

मैंने प्रोजेक्ट लैंग्वेज लेवल को 9 पर सेट किया और उसके बाद सब कुछ ठीक रहा।

आपके पास एक ही मुद्दा हो सकता है।


2

समस्या को हल करने का दूसरा तरीका: प्रोजेक्ट फ़ोल्डर में बाईं ओर माउस बटन को बाईं ओर प्रोजेक्ट संरचना में क्लिक करें, और कार्यों की सूची में "ओपन मॉड्यूल सेटिंग्स" पर क्लिक करें नई विंडो में, मेनू के नीचे एसडीके पर क्लिक करें। शीर्षक "प्लेटफ़ॉर्म सेटल हो जाता है" फिर "क्लासपैथ" सूची पर जांचें कि क्या आप jfxrt प्लगइन पथ पा सकते हैं, यदि नहीं, तो दाईं ओर + प्रतीक पर क्लिक करें और jfxrt प्लगइन (C) \ Program Files \ Java \ के repertory का चयन करें मेरे डेस्कटॉप पर jdk1.8.0 \ jre \ lib \ ext \ jfxrt.jar)


2

नमूना जावा अनुप्रयोग:

मैं अपने उत्तर को दूसरे प्रश्न से पार कर रहा हूं क्योंकि यह संबंधित है और प्रश्न में समस्या को हल करने के लिए भी लगता है।

यहाँ OpenJDK 12, JavaFX 12 और ग्रैडल 5.4 के साथ मेरा उदाहरण प्रोजेक्ट है

  • "हैलो वर्ल्ड!" शीर्षक के साथ एक JavaFX विंडो खोलता है
  • एक काम करने योग्य वितरण ज़िप फ़ाइल बनाने में सक्षम (विंडोज का परीक्षण किया जाना है)
  • अतिरिक्त कॉन्फ़िगरेशन के बिना इंटेलीजे में खोलने और चलाने में सक्षम
  • कमांड लाइन से चलने में सक्षम

मुझे आशा है कि किसी को Github परियोजना उपयोगी लगती है।

स्काला केस के लिए निर्देश :

इसके अतिरिक्त नीचे निर्देश हैं जो ग्रैडल स्केल प्लगइन के साथ काम करते हैं , लेकिन जावा के साथ काम नहीं करते हैं । मैं इसे यहाँ छोड़ रहा हूँ अगर कोई और भी Scala, Gradle और JavaFX का उपयोग कर रहा है।

1) जैसा कि प्रश्न में बताया गया है, JavaFX ग्रेडल प्लगइन को सेट करने की आवश्यकता है। ओपन JavaFX के पास इस पर विस्तृत प्रलेखन है

2) इसके अलावा आपको अपने प्लेटफॉर्म के लिए जावाएफएक्स एसडीके की आवश्यकता है जो कहीं न कहीं अनज़िप हो गया है। नोट: नवीनतम रिलीज़ अनुभाग पर स्क्रॉल करना सुनिश्चित करें जहां JavaFX 12 है (LTS 11 किसी कारण से पहली बार है।)

3) फिर, IntelliJ में आप जाएं File -> Project Structure -> Libraries, and-बटन को हिट करें और अनज़िप्ड जावाएफ़एक्स libएसडीके से फ़ोल्डर जोड़ें ।

स्क्रीनशॉट के साथ लंबे निर्देशों के लिए, IntelliJ के लिए उत्कृष्ट ओपन JavaFX डॉक्स देखें I मुझे एक गहरी लिंक काम नहीं कर सकती है, इसलिए डॉक्स नेवी से चयन करें JavaFX and IntelliJऔर फिर Modular from IDE। फिर नीचे स्क्रॉल करें 3. Create a library। अगर आपको परेशानी हो रही है तो दूसरे चरणों की जाँच करने पर भी विचार करें।

यह कहना मुश्किल है कि क्या यह ठीक वैसी ही स्थिति है जैसा कि मूल प्रश्न में है, लेकिन यह उतना ही पर्याप्त था जितना मैं यहां उतरा था, इसलिए मैं दूसरों को मदद करने के लिए यहां अपना अनुभव जोड़ रहा हूं।


2

इंटेलीज आइडिया में,

निम्नलिखित चीजों को ठीक से कॉन्फ़िगर किया गया है, की जाँच करें

चरण 1:

फ़ाइल -> सेटिंग -> प्लगइन्स -> javafx खोजें और सुनिश्चित करें कि यह सक्षम है।

चरण 2: परियोजना संरचना (Ctrl + Shift + Alt + s)

प्लेटफ़ॉर्म सेटिंग्स -> एसडीके -> 1.8 -> सुनिश्चित करें कि क्लासपैथ में "jre \ lib \ ext \ jfxrt.jar" होना चाहिए:

चरण 3:

प्रोजेक्ट सेटिंग्स -> प्रोजेक्ट -> प्रोजेक्ट एसडीके - का चयन 1.8 किया जाना चाहिए

प्रोजेक्ट सेटिंग्स -> प्रोजेक्ट -> प्रोजेक्ट भाषा स्तर - 8 के रूप में कॉन्फ़िगर किया गया

उबंटू: यदि आपके एसडीके में jfxrt.jar नहीं पाया गया है, तो sudo apt-get install ओपनजफैक्स स्थापित करें


0

मेरे पास एक ही समस्या थी , मेरे मामले में मैंने इसे हल किया :

1) फ़ाइल में जा रहे हैं -> प्रोजेक्ट स्ट्रक्चर ----> ग्लोबल लाइब्रेरीज़ 2) jfxrt.jar की तलाश में डिफ़ॉल्ट रूप में शामिल हैं jdk1.8.0_241 \ lib (इसे स्थापित करने के बाद) 3) जोड़ने के लिए ऊपर बाईं ओर + पर क्लिक करें नई वैश्विक लाइब्रेरी और मैंने अपने jdk1.8.0_241 Ex: (C: \ Program Files \ Java \ jdk1.8.0_241) का पथ निर्दिष्ट किया।

उम्मीद है इससे आपको मदद मिलेगी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.