2012-09-22 148 views
1

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

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甚至没有试图运行我的前端文件中,而不是使用Engine.java即使引擎是只是一个类的声明。 FrontEnd只是您创建新的Main Class java文件时由NB创建的hello world模板;它不会实例化任何其他类。

TL; DR

  1. 如何使Java应用程序运行前端第一或以其他方式解决上述错误?

非常感谢您的帮助。如果您需要任何其他信息,请不要犹豫,问。 :)

回答

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的发布,平台设置比较复杂)。基本上,您需要做的是使用最近的NetBeans版本(7.2+)的Java版本(jdk 7.7u6 +)并选择新的Project | JavaFX | JavaFX Application。 NetBeans应该创建一个可以运行的基本hello world框架。复制并粘贴你的游戏代码,确保它只使用JavaFX类而不是java awt或swing类,并且你应该很好。

您也可以在使用JavaFX创建精灵动画有兴趣在此really neat tutorial

+0

我发现**正确的**,因为你发布了这个答案。 >。<非常感谢,@jewelsea。我正在查看教程。 :) – Dylan