在用于开发的计算机中,我安装了Java 8。因此,为了使我的应用程序与旧的Java版本兼容,我在编译代码时尽可能地追溯。但我还是得到了
无法找到主类:mypackage.MyClass。程序将退出。
这是我的开发环境:
> java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) Client VM (build 25.111-b14, mixed mode, sharing)
在Netbeans中,我使用
编译了项目项目属性 - >来源 - >来源/二进制格式:JDK 6
确实我得到了:
> javap -verbose MyClass | "version"
minor version: 0
major version: 50
Major 50表示来自here的java 6。
应用程序在我的开发机器上运行良好。但是,当我尝试在另一台具有
的机器中运行我的jar文件时> java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) Client VM (build 20.12-b01, mixed mode)
我得到了这个:
> java -jar MyClass.jar
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
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$000(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)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
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)
... 12 more
Could not find the main class: mypackage.MyClass. Program will exit.
如果计算机具有Java 6并且编译的字节代码也兼容java 6,那么它是否运行正常?
任何帮助都非常感激。
答案 0 :(得分:1)
原因可能是因为Java FX没有捆绑到JRE / JDK 6中。
我无法在package overview summary中找到相关的包 this表示
JavaFX现在是Java 8的JRE / JDK的一部分(3月18日发布, 2014)并具有相同的编号,即JavaFX 8。