【发布时间】:2020-03-16 17:06:33
【问题描述】:
操作系统:Linux Mint 18.3 我要运行的组合是:Groovy 3.0.+(应用程序和测试代码)& Java 11+ & JavaFX 11+
有一点帮助(请参阅 cmets here)我现在可以使用 gradle.build 文件执行此操作(包括使用来自 application 插件的 Gradle“installDist”任务输出可执行文件)。
通过适当地配置类路径和模块路径,我还设法从 IntelliJ 中未启用 Gradle Groovy 的项目中做到这一点。
我的文件 javaFXTest.groovy 看起来像这样(注意这是我让 IntelliJ 运行的 Groovy 脚本):
package core
import javafx.application.Application
import javafx.fxml.FXMLLoader
import javafx.scene.Parent
import javafx.scene.Scene
import javafx.stage.Stage
Application.launch( GrApp, args)
class GrApp extends Application {
@Override
void start(Stage primaryStage) {
Parent root = FXMLLoader.load(getClass().getResource("/dialog1.fxml"))
primaryStage.title = "Hello World"
primaryStage.scene = new Scene(root, 1200, 800)
primaryStage.show()
}
}
我只是想知道,为了感兴趣,这实际上是如何根据 CLI groovy 命令完成的。我想它可能是这样的:
groovy -cp .:/home/mike/.java/JavaFX/javafx-sdk-11.0.2/lib/* --module-path /home/mike/.java/JavaFX/javafx-sdk-11.0.2/lib --add-modules javafx.controls,javafx.fxml core/javaFXTest.groovy
哎呀:
Caught: java.io.FileNotFoundException: /home/mike/IdeaProjects/JavaFXExp2/AppTest/src/main/groovy/--module-path (/home/mike/IdeaProjects/JavaFXExp2/AppTest/src/main/groovy/--module-path)
...它显然没有将--module-path 识别为可配置选项,通过groovy --help 确认。我对此进行了搜索,但一无所获。然而 IntelliJ 设法运行此脚本:--module-path 和 --add-modules 选项作为 VM 选项添加到运行配置中。有谁知道这可以作为 CLI 命令来完成吗?
【问题讨论】:
-
你在 IntelliJ 中使用的是什么跑步者?如果您只是使用 gradle runner(Gradle/Runner IIRC 下的一个选项)运行它,那么它就是这样做的。否则,它会尽力模仿 gradle 会做什么(这有时会失败得很可怕)。如果你幸运的话,intellij 在日志输出的开头显示完整的命令(它是一些不同的颜色并且折叠起来)。在您的 CLI 示例中,我对未引用的
*持怀疑态度 -
我只使用 IntelliJ 一个星期左右(来自 Eclipse 的逃犯),所以我不了解跑步者。我运行它的项目开始时是一个添加了 Groovy 的 JavaFX 项目。只是要启动,看看我是否能看到完整的命令......
标签: java javafx groovy java-11 java-module