我正在尝试为我的JavaFX项目创建一个jar文件,但似乎无法正常工作。根据我的操作,我会混合使用两种不同的错误:
Error: Could not find or load main class mapsRUs.MapsRUs
和Error: JavaFX runtime components are missing, and are required to run this application
。使用此配置,这是两者中的第一个。
我的build.gradle看起来像这样:
plugins {
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.7'
}
javafx {
modules = [ 'javafx.controls', 'javafx.fxml' ]
}
applicationDefaultJvmArgs = ["-Xmx4g"]
mainClassName = 'mapsRUs.MapsRUs'
dependencies {
compile 'com.google.guava:guava:23.0'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.2'
// Use JUnit test framework
testCompileOnly 'junit:junit:4.12'
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine:5.3.1'
}
repositories {
jcenter()
}
test {
useJUnitPlatform()
}
jar {
baseName = "Maps R Us"
manifest {
attributes 'Main-Class': mainClassName
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
jar任务生成的清单文件如下所示:
Manifest-Version: 1.0
Main-Class: mapsRUs.MapsRUs
我的主类包括此内容(它还有一些与该主题无关的东西)
public class MapsRUs extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
... some code ...
}
有人能找出这里有什么问题吗?预先感谢!