1

所以我对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 就是NB 在新建java 文件hello world时创建的模板;Main Class它不实例化任何其他类。

TL;博士

  1. 如何让 java 应用程序首先运行 FrontEnd 或以其他方式修复上述错误?

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

4

1 回答 1

2

在 NetBeans 中,您可以转到File | Project Properties | Run并更改Application类字段以匹配您的kingdomclash.FrontEnd类(其中应该有一个main方法,扩展 JavaFXApplication并且也有一个start方法)。

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

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

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

您可能还对这个关于使用 JavaFX 创建精灵动画的非常简洁的教程感兴趣。

于 2012-09-22T21:04:58.483 回答