我正在开始使用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;
中 - 这是正确的吗?任何帮助将不胜感激。
答案 0 :(得分:5)
我的问题实际上是在命令行调用中运行HelloWorld。
我应该调用以下内容:
java -cp target view.HelloWorld
java -cp target view.JFXHelloWorld
出于某种原因,它允许您在不应该运行view/HelloWorld
时运行。
答案 1 :(得分:0)
也许,你的问题是JFXHelloWorld从应用程序扩展而你并没有正确设置类路径。您使用的是Java8还是以前的任何Java版本?