SBK*_*SBK 5 java javafx intellij-idea gradle
我在 IntelliJ IDE 中使用 JavaFX 和 Gradle 运行 Java 程序时遇到问题。我已经研究了许多似乎是同一问题的解决方案,但这些都不起作用。
这个问题:IntelliJ + Gradle + JavaFX Building, but not running与我遇到的问题以及我尝试过的修复非常相似。但是该解决方案对我不起作用。
目前我正在尝试运行一个非常简单的应用程序:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class GUI extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
var pane = new BorderPane();
var input = new TextField();
primaryStage.setScene(new Scene(pane));
primaryStage.show();
}
}
Run Code Online (Sandbox Code Playgroud)
使用命令行和“gradlew run”时,此应用程序确实可以运行,但使用 IntelliJ IDEA IDE 时,它不会运行。
奇怪的是,如果我删除 TextField '输入',程序运行就没有问题。这让我相信问题与 java.controls 模块有关。然而,这是导入到我的 build.gradle 中的:
plugins {
id 'java'
id 'application'
id 'jacoco'
id 'org.openjfx.javafxplugin' version '0.0.8'
}
javafx {
modules = [ 'javafx.controls', 'javafx.fxml' ]
}
repositories {
jcenter()
}
dependencies {
// Use JUnit Jupiter Engine for testing.
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.5.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.5.1'
// Allow for JUnit 4 legacy
testCompileOnly 'junit:junit:4.12'
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine:5.5.1'
}
application {
mainClassName = 'bfst20.addressparser.GUI'
}
test {
useJUnitPlatform()
}
jar {
manifest {
attributes 'Main-Class': application.mainClassName
}
}
Run Code Online (Sandbox Code Playgroud)
尝试使用 TextField 运行程序时出现以下 2 个错误:
查看项目库时,您会得到以下概述:
这清楚地表明了库的存在。
运行“gradlew --info run”时,我得到以下输出:
> Task :run
Caching disabled for task ':run' because:
Build cache is disabled
Task ':run' is not up-to-date because:
Task has not declared any outputs despite executing actions.
Starting process 'command 'C:\Program Files\Java\jdk-11.0.4\bin\java.exe''. Working directory: C:\Users\ASUS\FST\handin1 Command: C:\Program Files\Java\jdk-11.0.4\bin\java.exe --add-modules javafx.controls,javafx.fxml --module-path C:\Users\Ejer\.gradle\caches\modules-2\files-2.1\org.openjfx\javafx-fxml\12.0.1\5397068b7fb8f8db6631242d78e14f7d6db07d51\javafx-fxml-12.0.1-win.jar;C:\Users\Ejer\.gradle\caches\modules-2\files-2.1\org.openjfx\javafx-controls\12.0.1\838555460c025b8df0fbc0fa03bf3f3767698f89\javafx-controls-12.0.1-win.jar;C:\Users\Ejer\.gradle\caches\modules-2\files-2.1\org.openjfx\javafx-graphics\12.0.1\18a01ffdd4edb82e7da3bc99937c6a608d1eaaa6\javafx-graphics-12.0.1-win.jar;C:\Users\Ejer\.gradle\caches\modules-2\files-2.1\org.openjfx\javafx-base\12.0.1\6f5947b255bb26e072862b3bb0c32d54d8effe84\javafx-base-12.0.1-win.jar -Dfile.encoding=windows-1252 -Duser.country=DK -Duser.language=da -Duser.variant -cp C:\Users\sande\OneDrive\Dokumenter\ITU\2. Semester\FST\handin1\build\classes\java\main;C:\Users\sande\OneDrive\Dokumenter\ITU\2. Semester\FST\handin1\build\resources\main;C:\Users\Ejer\.gradle\caches\modules-2\files-2.1\org.openjfx\javafx-fxml\12.0.1\5397068b7fb8f8db6631242d78e14f7d6db07d51\javafx-fxml-12.0.1-win.jar;C:\Users\Ejer\.gradle\caches\modules-2\files-2.1\org.openjfx\javafx-controls\12.0.1\838555460c025b8df0fbc0fa03bf3f3767698f89\javafx-controls-12.0.1-win.jar;C:\Users\Ejer\.gradle\caches\modules-2\files-2.1\org.openjfx\javafx-controls\12.0.1\a6502999bdb947885c8d121a47d745d52a06577a\javafx-controls-12.0.1.jar;C:\Users\Ejer\.gradle\caches\modules-2\files-2.1\org.openjfx\javafx-graphics\12.0.1\18a01ffdd4edb82e7da3bc99937c6a608d1eaaa6\javafx-graphics-12.0.1-win.jar;C:\Users\Ejer\.gradle\caches\modules-2\files-2.1\org.openjfx\javafx-graphics\12.0.1\19ec56a15d7dd9c49112912547425b718485d7db\javafx-graphics-12.0.1.jar;C:\Users\Ejer\.gradle\caches\modules-2\files-2.1\org.openjfx\javafx-base\12.0.1\6f5947b255bb26e072862b3bb0c32d54d8effe84\javafx-base-12.0.1-win.jar;C:\Users\Ejer\.gradle\caches\modules-2\files-2.1\org.openjfx\javafx-base\12.0.1\6abae81d00e0c6f4fde02e2666f9c0b989ff47e4\javafx-base-12.0.1.jar bfst20.addressparser.GUI
Successfully started process 'command 'C:\Program Files\Java\jdk-11.0.4\bin\java.exe''
:run (Thread[Daemon worker,5,main]) completed. Took 28.566 secs.
Run Code Online (Sandbox Code Playgroud)
小智 2
您可以手动创建以下配置来启动 JavaFX 应用程序:https://prnt.sc/qyaos2或单击 Gradle 上下文选项卡中的 \xe2\x80\x9crun\xe2\x80\x9d 任务:https://prnt。 sc/qyas3y
\n\n文档中描述了启动 Gradle 任务的所有可能选项:https://www.jetbrains.com/help/idea/work-with-gradle-tasks.html
\n