繁体   English   中英

Java向后兼容性问题-JDK 6的字节码未在JRE 6中运行

[英]Java backward compatibility issue - bytecode for JDK 6 not running in JRE 6

在用于开发的计算机中,我安装了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

这里开始 ,专业50表示Java 6。

该应用程序在我的开发机器上运行良好。 但是,当我尝试在具有

> 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兼容,它是否可以正常运行?

任何帮助,不胜感激。

这样做的原因可能是因为Java FX没有捆绑到JRE / JDK 6中。

我无法在软件包概述摘要中找到相关的软件包,并且指出

JavaFX现在是Java 8的JRE / JDK的一部分(2014年3月18日发布),并且具有相同的编号,即JavaFX 8。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM