2016-07-28 3 views
0

Я создал одно приложение для градации весны. Я уточнял основное имя класса в моем build.gradle, какНе удалось найти или загрузить основной класс <classname>

apply plugin: 'idea' 
apply plugin: 'java' 
apply plugin: 'application' 
apply plugin: 'eclipse' 

sourceCompatibility = 1.8 
def appName = 'app' 
buildDir = 'gradle-build' 
mainClassName = 'package.Application' 
dependencies{ 
    ---- 
} 
configurations { 
    compile.exclude group: 'ch.qos.logback' 
} 

jar { 
    baseName = appName 
    manifest { 
     attributes 'Implementation-Title': 'app', 
       'Implementation-Version': version, 
       'Main-Class': mainClassName 
    } 
} 

startScripts { 
    applicationName = appName 
} 

distributions { 
    main { 
     baseName = appName 
    } 
} 

, когда я запускаю мой основной класс от затмения, он работает должным образом. Но когда я выполняю файл jar, который будет сгенерирован в gradle-build, он бросает ошибку «не смог найти или загрузить основной класс».

Я уверен, выполнение команды, как

java -jar app.jar 

Я попытался с другими командами, а

java -cp -jar app.jar 
    java -cp app.jar 

Во всех случаях, я получаю ту же ошибку.

И мой файл манифеста, как это

Manifest-Version: 1.0 
Implementation-Title: app 
Implementation-Version: 1.0.0 
Main-Class: package.Application 

Пожалуйста, помогите мне решить это.

+0

Вы пытались сообщить весь путь к файлу? Пример: 'java -jar 'C: /myworkspace/myproject/myjar.jar" ' – Julian

+0

yes. Я сделал. Не повезло. Я использую mac, поэтому я указал абсолютный путь из «/ users/till/jarfile» – Raghavendra

+0

у вас есть запись '' Main-Class'' в '' META-INF/MANIFEST.MF'' в банке? – f1sh

ответ

0

У меня была очень похожая проблема.

Оказывается, проблема заключалась в том, что у моей Meta-INF внутри файла jar были файлы RSA, SF и Dsa.

изменить декларацию баночку, как следовать

jar { 
    baseName = appName 
    manifest { 
     attributes 'Implementation-Title': 'app', 
       'Implementation-Version': version, 
       'Main-Class': mainClassName 
    } 
    exclude ('META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA') 

}

Смежные вопросы