JavaFX最低要求

时间:2012-09-22 19:00:12

标签: java netbeans javafx game-engine main

所以我仍然是Java的新手,我正在尝试制作游戏。我使用在线教程创建了一个真正基本游戏引擎。我有三个类,Engine(核心),Sprite,SpriteManager。这些类中的每一个都在一个包中的自己的.java文件中描述。我正在使用NetBeans,我想创建另一个.java来处理游戏的前端;扩展我认为是JavaFX的Application类的东西。唯一的问题是,当我创建此文件并尝试运行游戏时,我在调试控制台中收到此消息:

run:
java.lang.NoSuchMethodException: kingdomsclash.Engine.main([Ljava.lang.String;)
    at java.lang.Class.getMethod(Class.java:1622)
    at com.javafx.main.Main.launchApp(Main.java:656)
    at com.javafx.main.Main.main(Main.java:805)
Java Result: 1
jfxsa-run:
BUILD SUCCESSFUL (total time: 4 seconds)

看起来NB甚至没有尝试运行我的FrontEnd文件而是使用Engine.java,即使Engine 只是类声明。 FrontEnd只是在创建新的hello world java文件时由NB创建的Main Class模板;它不会实例化任何其他类。

TL; DR

  1. 如何让java应用程序首先运行FrontEnd或以其他方式修复上面的错误?
  2. 非常感谢你的帮助。如果您需要任何其他信息,请不要犹豫。 :)

1 个答案:

答案 0 :(得分:2)

在NetBeans中,您可以转到File | Project Properties | Run并更改Application类字段以匹配您的kingdomclash.FrontEnd类(其中应包含main方法,扩展JavaFX Application并且还有start方法。

只要您最初将项目设置为JavaFX项目,它就应该可以工作。

如果它只是一个普通的Java项目,NetBeans可能找不到JavaFX运行时,在这种情况下,您可以按照以下说明操作。如果您的现有代码是为Swing编写的,我会建议为JavaFX重写它,而不是试图混合使用这两个系统,这会在您刚开始时带来不必要的复杂性。

NetBeans具有JavaFX应用程序的特殊项目和平台类型,您应该使用它们(否则它将找不到javafx运行时)。关于如何设置它有documentation(但不幸的是它现在已经过时了,因为它没有引用当前的JavaFX 2.2版本,而是引用了平台设置更复杂的旧版JavaFX 2.1)。基本上,您需要做的是使用最新的Java版本(jdk 7.7u6 +)和最新的NetBeans版本(7.2+)并选择新的Project | JavaFX | JavaFX Application。 NetBeans应该创建一个可以运行的基本hello world骨架。将游戏代码复制并粘贴到其中,确保它只使用JavaFX类而不是java awt或swing类,你应该好好去。

您可能对使用JavaFX创建精灵动画的really neat tutorial感兴趣。