我使用的是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 http://groovy-lang.org/differences.html)。 Groovy 附带了一个名为java2groovy
that might帮助迁移。
但由于 groovy 可以很好地运行 java 代码,为什么还要麻烦呢?迁移这些部分,最好使用 groovy 并暂时保留 java 部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)