所以我仍然是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
非常感谢你的帮助。如果您需要任何其他信息,请不要犹豫。 :)
答案 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感兴趣。