【问题标题】:JavaFX Minimum requirementsJavaFX 最低要求
【发布时间】:2012-09-14 20:07:11
【问题描述】:

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

TL;DR

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

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

【问题讨论】:

    标签: java netbeans javafx game-engine main


    【解决方案1】:

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

    只要您最初将项目设置为 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 类,您应该一切顺利。

    您可能还对really neat tutorial 感兴趣,了解如何使用 JavaFX 创建精灵动画。

    【讨论】:

    • 当您发布此答案时,我想出这一点正确。 >.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多