当前位置: 首页 > 知识库问答 >
问题:

下载JavaFX10或更高版本以创建可运行的jar文件

夔学智
2023-03-14

所以我要去终端,键入下面一行来运行它:

java --module-path /path/to/javafx/javafx-sdk-11.0.2 or another/lib --add-modules javafx.controls,javafx.fxml,javafx.graphics,javafx.web -jar /path/to/GUI_Music_Gen.jar

由于我找不到旧版本的javafx可供下载,我请求您的帮助。如果有人能帮助我,请告诉我。提前道谢。顺便说一句,我不知道这是否会是兼容性的问题,但我运行的是macOS X。

共有1个答案

狄宗清
2023-03-14

我建议使用依赖关系管理(如grade或maven)来运行JavaFX并构建一个工作的JAR。

我可以为工作中的JavaFX项目提供这个build.gradle:


buildscript {
    dependencies {
        classpath group: 'de.dynamicfiles.projects.gradle.plugins', name: 'javafx-gradle-plugin', version: '8.7.0'
        classpath 'org.openjfx:javafx:11'

    }
    repositories {
        mavenLocal()
        mavenCentral()
        maven {
            url "https://plugins.gradle.org/m2/"
        }

    }
}

plugins {
    id 'java'
    id 'application'
    id 'org.openjfx.javafxplugin' version '0.0.8'
}

sourceCompatibility = 11
targetCompatibility = 11
repositories {
    jcenter()
    mavenCentral()
}

// configure here

mainClassName = "your.app.main"

publishing {
    publications {
        mavenAar(MavenPublication) {
            from components.java
            afterEvaluate {
                artifact javadocJar
                artifact sourcesJar
            }
        }
    }
}

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


sourceSets {
    main.java.srcDir "src/main/java"
    main.resources.srcDir "src/main/resources"
}


dependencies {
    api 'org.apache.commons:commons-math3:3.6.1'
    implementation 'com.google.guava:guava:27.0.1-jre'
    testImplementation 'junit:junit:4.12'
    // use java fx just like a regular dependency :) 
    implementation 'org.openjfx:javafx:11'
    compile group: 'org.openjfx', name: 'javafx', version: '11.0.2'
}

// important Configure your project 
jar {
    manifest {
        attributes(
                'Main-Class': 'your.app.main'
        )

    }
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

compileJava {
    doFirst {
        options.compilerArgs = [
                '--module-path', classpath.asPath,
                '--add-modules', 'javafx.controls,javafx.fxml,javafx.graphics'
        ]
        println options.compilerArgs
    }
}

只需将“your.project.main”替换为实际的main类,一切就会正常运行。

 类似资料:
  • 问题内容: 我创建了一个Java应用程序,并且想为此应用程序创建jar文件。此应用程序通过“构建路径”>“添加外部Jar文件”导入了其他外部jar文件。我如何在具有这些外部库依赖项的Ubuntu中为此应用程序生成可执行JAR文件? 问题答案: 要在工作台中创建一个新的可运行JAR文件: 从菜单栏的“文件”菜单中,选择“导出”。 展开Java节点,然后选择Runnable JAR文件。点击下一步。

  • 嗯,我尝试了这么多的方法来创建可执行jar,但4个小时后我放弃了。我正在尝试用我的项目制作可执行的jar文件,其中主类在控制器中。基本上,我尝试使用export/runnable JAR文件,并使用各种选项,包括生成ant脚本。我在终端总是有类似的错误 当我用终端运行时 java-jar fruitstore.jar 提前感谢您的迅速回复

  • 这里的一些文章建议使用“Application”插件,但这并不完全导致我预期的结果(只是一个JAR,没有启动脚本或诸如此类的东西)。 我如何才能获得与Eclipse使用“export...”相同的结果。对话?

  • 问题内容: 我想用Java构建可运行的jar。我需要在jar中包含一些文件,以便在执行jar时会自动从java类读取文件。因此,我在项目中创建了一个文件夹,并从项目中引用了这些文件。我按照一些教程创建了jar文件,但是无法在jar文件中包含这些外部文件。请让我考虑使用外部文件创建可运行的jar。 我的文件结构是 我访问 的abc.txt 在 test1.java 类。我的代码是 使用eclipse

  • 当我在Eclipse中单击play时,项目运行良好,但在创建了可运行的JAR文件后,按钮的就消失了。 图像存储在src文件夹中,即子文件夹images中。 我创建了图像图标 我最终为screen recorder创建了一个非常非结构化的单片代码,现在实现他所说的有点困难。 我想知道是否有一种方法,比如创建一个类或接口,将包含所有这些资源。 那么我所要做的就是导入这些静力学,在我的主类中,

  • 我想用Java构建一个可运行的jar。我需要在jar中包含一些文件,这样当我执行jar时,文件就会自动从java类中读取。因此,我在项目中创建了一个文件夹,并从项目中引用了这些文件。我按照一些教程创建了jar文件,但我不能在我的jar文件中包含这些外部文件。请允许我使用外部文件创建可运行的jar。 当我使用eclipse导出选项创建可执行jar时,我无法看到jar内部的FileFolder目录。请