2015-09-14 21 views
32

Bu hata ile çıldırıyorum, Gradle kapalı bir JAR dosyası çalışırken karşılaşıyorum. Hata "RxJavaDemo.jar içinde ana manifest niteliği yok" okur Ben Manifest özelliğini manipüle çalıştı ama ben bağımlılıkları veya bir şey eklemek için unutmadan düşünüyorum. Tam olarak neyi yanlış yapıyorum?Gradle-no ana bildirim özniteliği

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) } 
} 

cevap

57

deneyin gibi tezahür özelliklerini değiştirmek için:

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

Ve sonra sadece bir ana yöntem vardır senin sınıfına 'hello.helloWorld' değiştirin. Bu durumda, tezahürünüzde bu sınıfa işaret eden bir öznitelik yaparsınız, sonra bir kavanoz çalışır.

+0

@Stanislav 'Ana Sınıf' değeri ana sınıfa mı? Örneğinizde merhaba ve merhaba World nedir? –

+1

@DanielaMaia sadece tam bir sınıf adıdır, helloHelloWorld olarak yazılması gerektiğinden emin olun, merhaba HelloWorld sınıfının bulunduğu yer olan paket – Stanislav

+2

'toplayın' çalışması için 'toplayın {} benim için. Kodunuz, tüm bağımlılıkların ana sınıfınızla aynı klasörde olduğunu varsayar. – AutonomousApps

İlgili konular