簡體   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