2015-09-14 6 views
32

मैं एक तरह से इस त्रुटि मैं जब एक जार Gradle बनाया गया फ़ाइल चलाने के साथ पागल हो रहा हूँ। त्रुटि "RxJavaDemo.jar में" कोई मुख्य मैनिफेस्ट विशेषता नहीं पढ़ती है "मैंने मैनिफेस्ट संपत्ति में हेरफेर करने की कोशिश की लेकिन मुझे लगता है कि मैं निर्भरताओं या कुछ को जोड़ना भूल रहा हूं। मैं वास्तव में क्या गलत कर रहा हूँ?Gradle- कोई मुख्य मेनिफ़ेस्ट विशेषता

apply plugin: 'java' 
apply plugin: 'application' 

mainClassName = 'demo.MainDashboard' 

dependencies { 

    compile files ("H:/Processes/Development/libraries/hikari-cp/HikariCP-2.4.1.jar") 
    compile files ("H:/Processes/Development/libraries/controls-fx/controlsfx.jar") 
    compile files ("H:/Processes/Development/libraries/database_connections/sqlite-jdbc-3.8.6.jar") 
    compile files ("H:/Processes/Development/libraries/guava/guava-18.0.jar") 
    compile files ("H:/Processes/Development/libraries/rxjava/rxjava-1.0.12.jar") 
    compile files ("H:/Processes/Development/libraries/rxjava-extras/rxjava-extras-0.5.15.jar") 
    compile files ("H:/Processes/Development/libraries/rxjavafx/RxJavaFX-1.0.0-RC1-SNAPSHOT.jar") 
    compile files ("H:/Processes/Development/libraries/rxjavaguava/rxjava-guava-1.0.3.jar") 
    compile files ("H:/Processes/Development/libraries/rxjava-jdbc/rxjava-jdbc-0.6.3.jar") 
    compile files ("H:/Processes/Development/libraries/slf4j/slf4j-api-1.7.12.jar") 
    compile files ("H:/Processes/Development/libraries/tom-commons/tom-commons.jar") 

} 

sourceSets { 
    main.java.srcDir "src/main/java" 
    main.resources.srcDir "src/main/resources" 
} 

    jar { 
    manifest { 
    attributes(
     "Class-Path": configurations.compile.collect { it.getName() }.join(' ')) 
    } 
    from configurations.compile.collect { entry -> zipTree(entry) } 
} 

उत्तर

57

कोशिश की तरह अपने प्रकट विशेषताओं को बदलने के लिए:

jar { 
    manifest { 
    attributes(
     'Class-Path': configurations.compile.collect { it.getName() }.join(' '), 
     'Main-Class': 'hello.HelloWorld' 
    ) 
    } 
} 

और फिर बस अपने वर्ग है, जो एक मुख्य विधि है करने के लिए 'hello.helloWorld' बदल जाते हैं। इस मामले में, आप अपने मैनिफेस्ट में एक विशेषता बनाते हैं, जो इस वर्ग को इंगित करता है, फिर एक जार चल रहा है।

+0

@ स्टैनिस्लाव 'मेन-क्लास' मूल्य मुख्य वर्ग है? आपके उदाहरण में हैलो और हैलो वर्ल्ड क्या हैं? –

+1

@DanielaMaia यह सिर्फ एक पूर्ण योग्य वर्ग के नाम है, यकीन है कि यह hello.HelloWorld, जहां हैलो पैकेज जहां HelloWorld वर्ग – Stanislav

+2

स्थित है मैं को दूर करने के लिए आवश्यक है के रूप में लिखा है 'इकट्ठा {}' भाग यह काम करने के लिए प्राप्त करने के लिए मेरे लिए। आपका कोड मानता है कि सभी निर्भरताएं आपके मुख्य वर्ग के समान फ़ोल्डर में हैं। – AutonomousApps

संबंधित मुद्दे