this の問題のため、Eclipse IDEをアンインストールしました。次に、LinuxmintターミナルでJavaプログラムを実行しようとしました。それで、始めました。小さなコードで
public class Myth{
public static void main(String[]args){
System.out.println("Hii There");
}
}
コマンドを与えて実行しますjavac Myth.Java
およびJava Myth
しかし、出力を与えることを意図すると、次のエラーが発生します
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" Java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=Myth, offset=6
at Java.lang.ClassLoader.defineClassImpl(Native Method)
at Java.lang.ClassLoader.defineClass(ClassLoader.Java:379)
at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:154)
at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:729)
at Java.net.URLClassLoader.access$400(URLClassLoader.Java:95)
at Java.net.URLClassLoader$ClassFinder.run(URLClassLoader.Java:1184)
at Java.security.AccessController.doPrivileged(AccessController.Java:732)
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:604)
at Java.lang.ClassLoader.loadClassHelper(ClassLoader.Java:926)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:871)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:343)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:854)
at Sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.Java:507)
この
Java.lang.UnsupportedClassVersionError
つまり、プロジェクト内の一部のライブラリが異なるバージョンのJavaを使用しており、それに応じてパスを設定していることを意味します。これを解決するための簡単な方法:
$>which Java
出力->現在の場所Java(例:/ usr/bin/Java)
Java --version
output-> 1.7.0または1.8.0の場合は、バージョンを切り替えてみてください。次のようにします。
export Java_HOME=<path to diff Java version sdk>
export PATH=$Java_HOME/bin:$PATH
これにより、新しいパスを古いパスの前に置くことができます。また、Eclipse固有のエラーについては、ホームディレクトリ(プロジェクトの.Eclipseフォルダー)にあるEclipseキャッシュを確認してください。 .projectファイルがある場合は、このディレクトリを安全に削除して再コンパイルできます。
編集:Offset = 6は、Java(JDK)の現在のバージョンが1.6であることを意味します。それ以降のバージョンに切り替えてみてください。また、jreパスではなくJdkパスを使用していることを確認してください