gpt4 book ai didi

groovy - 是否可以在 Groovy 中使用与 Java 中相同的语法来使用 JavaFX?

转载 作者:行者123 更新时间:2023-12-01 04:35:56 26 4
gpt4 key购买 nike

我正在使用 jdk1.8.0_25。

我正在尝试运行一个 JavaFX 应用程序文件,当命名为“HelloWorldMain.java”时,它可以使用 javac/java 编译并运行正常。我将它重命名为“HelloWorldMain.groovy”,但无法使用 Groovy 运行它。

是否有一种简单的方法可以使用 Groovy 运行此文件,无需或只需极少修改,最好无需像 GroovyFX 这样的附加软件?如果我必须使用 GroovyFX,我可以不加修改地运行这个纯 Java 代码吗?

import javafx.application.Application; 
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;

/**
*
* @author cdea
*/
public class HelloWorldMain extends Application {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Application.launch(args);
}

@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World");
Group root = new Group();
Scene scene = new Scene(root, 300, 250);
Button btn = new Button();
btn.setLayoutX(100);
btn.setLayoutY(80);
btn.setText("Hello World");
btn.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
System.out.println("Hello World");
}
});
root.getChildren().add(btn);
primaryStage.setScene(scene);
primaryStage.show();
}

}

我正在尝试运行它

groovy HelloWorldMain.groovy

并在命令行中获得以下输出:

Caught: java.lang.RuntimeException: java.lang.ClassNotFoundException:             javafx.application.Application$launch
java.lang.RuntimeException: java.lang.ClassNotFoundException: javafx.application.Application$launch
at javafx.application.Application.launch(Application.java:260)
at javafx.application.Application$launch.call(Unknown Source)
at HelloWorldMain.main(HelloWorldMain.groovy:20)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application$launch
at javafx.application.Application.launch(Application.java:248)
... 2 more

最佳答案

将main方法替换为:

public static void main(String[] args) {
launch(HelloWorldMain, args);
}

这个错误基本上给了你答案:不,你不能只复制文件在所有情况下。 groovy 和 java 之间存在差异(例如 http://groovy-lang.org/differences.html )。 Groovy 附带一个名为 java2groovy 的工具,可能有助于迁移。

但是,由于 groovy 在 Java 代码中运行良好,为什么还要麻烦呢?迁移部分,最好使用 groovy 并暂时保留 java 部分。

关于groovy - 是否可以在 Groovy 中使用与 Java 中相同的语法来使用 JavaFX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27235665/

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