У меня есть сборка приложения javafx с gradle, и я использую внешнюю библиотеку apache poixml, и мне нужно создать для нее банку, и она не запускается при использовании примера проекта классов poixml для того, что я пробовал на github: https://github.com/IslamAssem/HelloFX-Gradle
Как упаковать приложение javafx с помощью Gradle?
Ответы (1)
Я предполагаю, что вы используете отдельно загруженную банку OpenJFX14 и включили ее в свой путь сборки.
Я бы добавил JavaFX в ваши зависимости через Gradle..
dependencies {
implementation 'org.apache.poi:poi:4.1.1'
implementation 'org.apache.poi:poi-ooxml:4.1.1'
testCompile group: 'junit', name: 'junit', version: '4.12'
// here starts JavaFX
implementation 'org.openjfx:javafx:14'
compile 'org.openjfx:javafx-base:14'
compile 'org.openjfx:javafx-graphics:14'
compile 'org.openjfx:javafx-controls:14'
compile 'org.openjfx:javafx-fxml:14'
compile 'org.openjfx:javafx-swing:14'
compile 'org.openjfx:javafx-media:14'
compile 'org.openjfx:javafx-web:14'
}
Тогда я бы порекомендовал, чтобы ваш Main не находился в классе, который наследуется от Application.
Вы должны создать Launcher.
public class Launcher{
public static void main(String[] args){
Application.launch(HelloFX.class,args);
}
}
И создать банку с JavaFX...
Добавьте это в свой build.gradle:
jar {
manifest {
attributes(
'Main-Class': 'your.main.package.Launcher' // replace with you main class
)
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
Это следует к делу.
person
Luxusproblem
schedule
23.04.2020
Спасибо, это сработало отлично, но сгенерированная банка очень большая, около 50 МБ, и все, что у меня есть, это программа, которая печатает текст на этикетке.
- person Islam Assem; 24.04.2020
@Islam Assem, причина может быть в том, что вы включаете модули, которые вам не нужны. Например, Jafaxf.media и т. д. Просто включите то, что вам действительно нужно. Также apache Poi сам по себе очень большой.
- person Luxusproblem; 26.04.2020
Хорошо, спасибо, я начну изучать proguard, чтобы получить красный цвет от этих классов.
- person Islam Assem; 26.04.2020