首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Groovy中使用与Java相同的语法是可能的吗?

在Groovy中使用与Java相同的语法是可能的吗?
EN

Stack Overflow用户
提问于 2014-12-01 19:24:37
回答 1查看 1.7K关注 0票数 3

我正在使用jdk1.8.0_25。

我正在尝试运行一个名为'HelloWorldMain.java‘的JavaFX应用程序文件,它用javac/java编译并运行OK。我将它重命名为“HelloWorldMain.groovy”,无法使用Groovy运行它。

是否有一种简单的方法可以使用Groovy运行这个文件而不进行任何或最小的修改,最好不使用GroovyFX之类的附加软件?如果我必须使用GroovyFX,我可以在不修改的情况下运行这个纯Java代码吗?

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-01 19:57:04

将主要方法改为:

代码语言:javascript
复制
public static void main(String[] args) {
    launch(HelloWorldMain, args);
}

错误基本上给出了答案:不行,您不能只复制文件,在所有情况下都是。groovy和java (例如http://groovy-lang.org/differences.html)有区别。Groovy附带了一个名为java2groovy的工具,可能会帮助迁移。

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

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27235665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档