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

Aar*_*sen 5 java packages java-8 javafx-8

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

Missing JavaFX application class view/JFXHelloWorld
Run Code Online (Sandbox Code Playgroud)

我在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;- 这是正确的吗?任何帮助,将不胜感激.

Aar*_*sen 5

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

我应该调用以下内容:

java -cp target view.HelloWorld
java -cp target view.JFXHelloWorld
Run Code Online (Sandbox Code Playgroud)

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


小智 0

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