2012-07-05 24 views
9

से जार फ़ाइल कैसे बनाएं मेरे पास जावाएफ़एक्स प्रोजेक्ट है, जिसके साथ मैं एक्लिप्स आईडीई पर काम कर रहा हूं। यह वसंत के उपयोग के साथ मेवेन परियोजना है। मेरा लक्ष्य इस परियोजना से चलने योग्य जार फ़ाइल (डेकस्टॉप एप्लिकेशन) बनाना है।javaFX प्रोजेक्ट

तो मैं किसी भी अन्य जावा परियोजना की तरह जार फाइल करने के लिए अपने आवेदन निर्यात करते हैं, तो मैं इस त्रुटि पर प्राप्त:

C:\eclipse\projjars>java -jar EqMan.jar 
Exception in thread "main" java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Can't load library: C:\eclipse\bin\glass.dll 
     at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:276) 
     at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:122) 
     at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:163) 
     at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47) 
     at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115) 
     at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.UnsatisfiedLinkError: Can't load library: C:\eclipse\bin\glass.dll 
     at java.lang.ClassLoader.loadLibrary(Unknown Source) 
     at java.lang.Runtime.load0(Unknown Source) 
     at java.lang.System.load(Unknown Source) 
     at com.sun.glass.utils.NativeLibLoader.loadLibraryFullPath(NativeLibLoader.java:143) 
     at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:56) 
     at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:31) 
     at com.sun.glass.ui.Application$1.run(Application.java:75) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:73) 
     at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:85) 
     at com.sun.glass.ui.win.WinApplication.<clinit>(WinApplication.java:33) 
     at com.sun.glass.ui.win.WinPlatformFactory.createApplication(WinPlatformFactory.java:20) 
     at com.sun.glass.ui.win.WinPlatformFactory.createApplication(WinPlatformFactory.java:17) 
     at com.sun.glass.ui.Application.Run(Application.java:108) 
     at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:266) 
     ... 5 more 

मैं javafxpackager साथ जार फ़ाइल बनाने के लिए कोशिश कर रहा हूँ, तो मैं इस एक त्रुटि प्राप्त:

C:\eclipse\workspace\equification>javafxpackager -makeall -appclass ru.igs.ava.equification.EquificationFX -name "Equification" -width 800 -height 600 
warning: [options] bootstrap class path not set in conjunction with -source 1.5 
C:\eclipse\workspace\equification\src\main\java\ru\igs\ava\equification\EqConfigureRole.java:5: error: package org.springframework.context does not exist 
import org.springframework.context.ApplicationContext; 
C:\eclipse\workspace\equification\src\test\java\ru\igs\ava\equification\AppTest.java:11: error: cannot find symbol 
    extends TestCase 
      ^
//and the same error for every class, which is added to my project as maven dependency. 

तो, मैं अपनी परियोजना को नेटबीन प्रोजेक्ट में परिवर्तित किए बिना रन करने योग्य जार फ़ाइल कैसे बना सकता हूं?

उत्तर

5

जैसा कि आप अपने निर्माण के लिए मेवेन का उपयोग कर रहे हैं, आप JavaFX पैकेजिंग शुरू करने के लिए मेवेन का भी उपयोग कर सकते हैं। ऐसा करने के लिए मैवेन antrun प्लगइन का उपयोग JavaFX ant tasks को अपने एप्लिकेशन के लिए एक एम्बेडेड जावाएफएक्स लॉन्चर के साथ जेनर उत्पन्न करने के लिए करें। ऐसा करने के लिए यहां एक sample maven pom है।


javafx packager चलाने में आपकी त्रुटियां पैकेजर के लिए क्लासपाथ को उचित रूप से सेट करने के कारण नहीं हैं। आवेदक lib jars पर निर्भर अनुप्रयोग को पैकेज करने के लिए javafx packager के लिए क्लासपाथ को सेट करने का एक उदाहरण इस build script में है। जब आप अपने अनुप्रयोग चलाने क्योंकि आप jfxrt.jar के क्रम स्थान के लिए एक ../bin निर्देशिका सापेक्ष में आवश्यक lib dll के शामिल नहीं कर रहे


असंतुष्ट लिंक त्रुटियाँ हैं। आप JavaFX लॉन्चर के साथ अपने एप्लिकेशन को सही ढंग से पैकेजिंग नहीं कर सकते हैं (आपके जावाएफएक्स एप्लिकेशन जार जेनरेट करने के लिए अनुशंसित जावाफैक्स चींटी कार्यों या javafxpackager कमांड को निष्पादित करके)।

अद्यतन

Maven आधारित के लिए JavaFX आवेदनों की बनाता है, अब आप एक Maven JavaFX plugin उपयोग कर सकते हैं।

0

संदेह से जाकर कि अंतर्निहित समस्या jfxrt.jar के बीच असंगतता के कारण है और जावा के संस्करण ने मेरे लिए काम किया है। Jfxrt.jar एप्लिकेशन का उपयोग jdk-7u71 के साथ संगत था, फिर भी एप्लिकेशन एक मशीन पर था जहां JAVA_HOME 7.0.05 पर सेट किया गया था। इसलिए मैंने समस्या मशीन पर jdk-7u71 स्थापित किया और JAVA_HOME अपडेट किया।