我有基于JavFX 2的项目,它在Eclipse中完成并完美运行。现在我正在尝试将其部署在计算机上(自助服务,终端,......)。我创建了jar文件,但是当我尝试“java -jar myproject.jar”时,我采用以下内容
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 13 more
UDT: 我认为jfxrt.jar存在一些问题,其中存储了javafx.application.Application类,在eclipse中我手动在构建路径中添加了这个jar ..
答案 0 :(得分:2)
在Java 7中,JavaFX包含在JDK下载中,但不在类路径中(JavaFX不是Java 7中核心库的一部分)。查看tutorial on deployment,其中显示了部署可行的jar文件的机制。
(在Java 8中,JavaFX成为核心库的一部分,并将包含在类路径中,因此您的常规jar文件可能会正常工作。但是,对于正确的部署过程,您仍然可以做一些很酷的事情。)