gpt4 book ai didi

当我尝试运行我的 jar 文件时,JavaFX 错误 : Could not find or load main class home. main with gradle (IntelliJ)

转载 作者:行者123 更新时间:2023-12-03 03:25:12 24 4
gpt4 key购买 nike

我用 gradle 生成一个 jar 文件来测试我的程序,但是当我运行命令时:

Java -jar file_name .jar 
我总是有同样的错误:
Error: Could not find or load main class home.Main
Caused by: java.lang.ClassNotFoundException: home.Main
构建.gradle:
plugins {
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.8'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
mavenCentral()
}

dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile 'com.jfoenix:jfoenix:9.0.8'
}

javafx {
version = "14"
modules = [ 'javafx.controls', 'javafx.fxml']
}


jar {
manifest {
attributes(
'Class-Path': configurations.compile.files.collect {"$it.name"}.join(' '),
'Main-Class': 'home.Main')}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
Architecture
Artifacts settings

最佳答案

更新:
为了在我的 build.gradle 中制作“fatJar”这个任务对我有用:

task fatJar(type: Jar) {
manifest {
attributes 'Main-Class': "home.Launcher"
}
baseName = 'Desired_fat_jar_name'
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
with jar
}
所以你运行 gradlew fatJar把所有的东西都放在一个 jar 里。
它看起来非常接近您所拥有的,因此请尝试将您的更改为此或尝试从 build.gradle 中删除“Class-Path”部分。

为了使用 Java 9+ 启动非模块化 JavaFX 应用程序,您需要创建一个 Launcher.java 文件,其内容如下:
package home;

/**
* Class to launch the JavaFX application.
*
* This launcher class will allow launching a non-modular 9+ JavaFX application.
*/
public class Launcher
{
/**
* Main function executed by Java application
* @param args
*/
public static void main(String[] args)
{
Main.main(args);
}
}
其中“Main.main”是您的类中扩展 JavaFX 应用程序类的主要函数。
您还需要将 build.gradle 中的主类更改为“home.Launcher”。

关于当我尝试运行我的 jar 文件时,JavaFX 错误 : Could not find or load main class home. main with gradle (IntelliJ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62949931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com