Я предполагаю, что вы используете отдельно загруженный jar 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);
}
}
И чтобы построить Jar с 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) }
}
}
Это должно быть в сделке.