我无法在 IntelliJ IDEA 上创建“JavaFX 应用程序”工件,它 给出“'javafx:deploy' 未在此 SDK 中实现。”错误。
我不想使用 Maven/Gradle,因为; 使用 Maven:我无法使用我的本地 jar 库,我尝试将其作为一个库包含在内,使用 Jitpack,在 POM 中添加一些东西,但它们都不起作用。 使用 Gradle:我不了解 Gradle,但我认为它与 maven(本地库)有同样的问题。 所以我需要一个没有 Maven/Gradle 的解决方案。
我尝试创建“JAR 应用程序”工件并构建它,但它无法通过双击或控制台命令运行。我确定我正确安装和配置了 JavaFX 和 jmods。
构建一个 JavaFX 可执行文件,无需控制台命令即可运行。
答案 0 :(得分:1)
就去 jpackage 吧。这是文档的链接。 https://docs.oracle.com/en/java/javase/16/jpackage/packaging-overview.html#GUID-C1027043-587D-418D-8188-EF8F44A4C06A
答案 1 :(得分:-1)
没有 Gradle/Maven 不是一个解决方案,但我强烈建议您尝试使用 Gradle。创建一个新的 Gradle 项目(如果你使用 IntelliJ 很容易),你只需要在 build.gradle 文件中添加依赖项。我使用 JavaFX 制作 Gradle 项目的示例:
plugins {
// Apply the application plugin to add support for building a CLI application in java.
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.9'
}
repositories {
mavenCentral()
}
dependencies {
// This dependency is used by the application
implementation 'com.google.guava:guava:29.0-jre'
implementation 'com.googlecode.json-simple:json-simple:1.1.1'
// Use JUnit test framework
testCompile('org.junit.jupiter:junit-jupiter-api:5.3.1')
testCompile('org.junit.jupiter:junit-jupiter-engine:5.3.1')
}
run {
standardInput = System.in
}
application {
mainClass = "com.Nephty.main"
}
javafx {
version = "15.0.1"
modules = [ 'javafx.controls' , 'javafx.fxml' , 'javafx.media' ]
}
两个重点:存储库、应用程序和 javafx。
在存储库中,您指定要从中下载库的存储库,因此您不必将它们保留在本地计算机上。这有助于共享您的程序,因为其他用户不必自己下载和设置 JavaFX(这对于不精通技术的人来说是不可能的)。
在 JavaFX 中,您指定要使用的模块和版本。
在应用程序中,您指定将运行的主类。
然后,您可以执行控制台命令:gradew.bat run(使用 cwd 作为您的项目目录)或使用 IntelliJ 中易于访问的任务。之后,您可以创建一个快捷方式,该快捷方式将自动运行控制台命令,而无需您打开控制台并输入所有内容。如果您是唯一要使用您的应用程序的人,这与拥有可执行文件相同(如果我们只关心使用该程序)。
有一个应用程序可以帮助为 Java 应用程序构建可执行文件。 This 视频对此进行了解释。
希望你能在这里找到你想要的东西。如果没有,请不要介意回复,以便我们尝试解决问题。