将JavaFX与包一起使用会生成"缺少JavaFX应用程序类"错误

时间:2014-04-13 04:00:44

标签: java packages java-8 javafx-8

我正在开始使用JavaFX,因为它带有Java 8,我遇到了一个奇怪的问题。从默认包运行时,我的简单Hello World应用程序运行正常。但是,当将它放入包中时,尝试运行该程序会给我以下错误:

Missing JavaFX application class view/JFXHelloWorld

我在HelloWorld.java文件夹中包含了一个普通的view文件,它运行正常。

为了澄清,我的文件结构如下所示:

jfx ----src --------view ------------HelloWorld.java ------------JFXHelloWorld.java ----target --------view ------------HelloWorld.class ------------JFXHelloWorld.class

其中target是我使用以下命令将编译文件放入的文件夹:

javac -d target src/view/*.java

运行正常的HelloWorld.java文件可以正常工作:

java -cp target view/HelloWorld Hello, World!

但是,运行JavaFX文件会导致ClassLoader出现问题:

java -cp target view/JFXHelloWorld Missing JavaFX application class view/JFXHelloWorld

谷歌搜索引领我9个结果,所有这些都是JavaFX ClassLoader的源代码。

HelloWorld.java和JFXHelloWorld.java都声明在package view;中 - 这是正确的吗?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:5)

我的问题实际上是在命令行调用中运行HelloWorld。

我应该调用以下内容:

java -cp target view.HelloWorld
java -cp target view.JFXHelloWorld

出于某种原因,它允许您在不应该运行view/HelloWorld时运行。

答案 1 :(得分:0)

也许,你的问题是JFXHelloWorld从应用程序扩展而你并没有正确设置类路径。您使用的是Java8还是以前的任何Java版本?